Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
queue:work tidak berfungsi
saya sedang belajar laravel 11 tentang auth login... namun ketika masuk ke verifikasi email (kirim verifikasi via email) menggunakan smtp dan ketika mau menjalankan php artisan queue:work dan tidak ada keterangan error. padahal udah di setting seperti berikut
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxxxxxxx@gmail.com
MAIL_PASSWORD= xxxxxxxxxxxxxxxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
Mohon pencerahannya kepada agan2
5 Jawaban:
Boleh dijelaskan apa yang terjadi:
- "ketika mau menjalankan php artisan queue:work"?
- saat register, apakah masuk ke dashboard seperti biasa?
If php artisan queue:work shows nothing, first check your .env has QUEUE_CONNECTION=database (not sync), run php artisan queue:table + migrate, and make sure your Gmail SMTP uses an App Password. Also check storage/logs/laravel.log for hidden errors, so testing with queue:listen can help spot issues quickly.
- Cek Driver Queue-mu di .env Pastikan di .env kamu tidak pakai sync, karena kalau pakai sync, email langsung dikirim tanpa antrian. QUEUE_CONNECTION=database
Kalau kamu belum buat tabel queue-nya, jalankan ini: php artisan queue:table php artisan migrate
Lalu jalankan worker-nya: php artisan queue:work
-
Pastikan Job Email Memang Masuk ke Queue Coba kirim email verifikasi ulang, lalu cek di database pada tabel jobs. Kalau tabel jobs kosong, berarti email tidak dikirim ke queue. 📌 Coba lihat di config/mail.php dan config/queue.php apakah nilainya sesuai dengan .env. Lalu bersihkan cache-nya agar .env terbaca ulang: php artisan config:clear php artisan cache:clear php artisan queue:restart
-
Coba Tes Kirim Email Manual Untuk memastikan SMTP Gmail kamu benar, coba kirim email manual dari Tinker: php artisan tinker
Lalu di dalam Tinker: Mail::raw('Test email dari Laravel', function($message) { $message->to('[email protected]') ->subject('Tes Kirim Email'); }); Kalau tidak terkirim, berarti masalah ada di SMTP Gmail.
- Pastikan Gmail SMTP Bisa Digunakan Karena Gmail tidak mengizinkan password biasa, kamu harus pakai App Password.
Langkah-langkah: Aktifkan 2-Step Verification di akun Gmail kamu. Buka https://myaccount.google.com/apppasswords Buat App Password baru (pilih: Mail → Other → Laravel). Gunakan 16-digit password yang muncul sebagai MAIL_PASSWORD di .env.
Contoh: MAIL_PASSWORD=abcd efgh ijkl mnop (jangan pakai spasi saat disalin ke .env)
- Cek Log Laravel Kadang error tidak tampil di terminal, tapi tersimpan di log.
Lihat file log: storage/logs/laravel.log Kalau ada error seperti Connection could not be established, berarti setting SMTP-nya masih salah.
-
Gunakan Mode “sync” Untuk Coba Dulu Untuk memastikan sistem pengiriman email bekerja, ubah dulu ke: QUEUE_CONNECTION=sync Lalu kirim ulang email verifikasi. Kalau sekarang email masuk, berarti sistem mail kamu aman, tinggal queue-nya yang perlu dibenerin.
-
Jalankan Worker Dengan Debug Coba jalankan worker-nya dengan verbose mode biar kelihatan apa yang terjadi: php artisan queue:work --verbose
Atau pakai: php artisan queue:listen Ini biasanya lebih kelihatan prosesnya saat job dikirim.
queue:work tidak error karena job tidak masuk ke queue atau queue masih sync.
Cek cepat:
- Pastikan di
.env:
QUEUE_CONNECTION=database
- Buat tabel queue:
php artisan queue:table
php artisan migrate
- Jalankan worker:
php artisan queue:work
-
Gmail WAJIB pakai App Password, bukan password biasa.
-
Kalau masih diam, cek log:
storage/logs/laravel.log
Untuk debug cepat:
php artisan queue:listen
Numpang belajar dari Awal Puh... Sepuh🙏🙏