13 - Notifications & Background Jobs
Starter kit ini menggunakan sistem Filament Notifications yang terintegrasi dengan Laravel Queue.
π Mengapa Menggunakan Queue?β
Beberapa proses seperti mengirim email atau menyimpan notifikasi ke database bisa memakan waktu. Dengan menggunakan antrean (Queue), aplikasi tetap responsif karena proses tersebut dikerjakan di latar belakang.
π Konfigurasi di Lokalβ
Secara default di file .env:
QUEUE_CONNECTION=database
Artinya, semua job akan disimpan di tabel jobs di database SQLite Anda.
Menjalankan Workerβ
Untuk memproses antrean tersebut, Anda harus menjalankan perintah ini di terminal terpisah:
php artisan queue:work
Opsi Tanpa Worker (Sync)β
Jika Anda sedang melakukan pengujian cepat dan tidak ingin menjalankan worker, ubah koneksi menjadi sync:
QUEUE_CONNECTION=sync
Dengan opsi ini, semua antrean akan diproses secara sinkron (langsung) di dalam request yang sama.
π Contoh Implementasi: Notifikasi Logoutβ
Fitur notifikasi saat logout diimplementasikan di:
app/Actions/Profile/LogoutSessionAction.phpapp/Actions/Profile/LogoutOtherBrowserSessionsAction.php
Kode ini menggunakan:
Notification::make()
->title(...)
->sendToDatabase($user);
Perintah sendToDatabase() secara otomatis akan memasukkan notifikasi ke dalam antrean jika driver queue Anda bukan sync.