Menghapus Queue Job Menggunakan Redis Artisan Command Di Laravel
Pertanyaannya adalah bagaimana cara menghapus semua pekerjaan yang antri di Laravel saat Anda menggunakan redis sebagai driver Antrian.
Untuk melakukan ini ada beberapa opsi:
Opsi-1: umum
Menggunakan paket laravel-queue-clear yang dikembangkan oleh Craig Morris yang menyediakan alat yang berguna untuk menghapus semua jenis pekerjaan yang antri dengan perintah artisan. Paket ini komprehensif dan tidak hanya untuk redis.
Untuk menghapus antrian Anda, Anda perlu menjalankan ini:
php artisan queue:clear [connection] [queue]
dimana [koneksi] adalah :
nama koneksi di config/queue.php
Anda
dan [antrian] adalah:
nama antrian / pipa yang ingin Anda hapus
Opsi-2: redis
Di terminal Anda dapat menggunakan perintah ini:
FLUSHDB
Yang berasal dari sini tautan ini.
$ redis-cli
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> exit
Maka hasilnya di Laravel.dev/horizon adalah sebagai berikut dan semua pekerjaan yang antri akan dihapus dengan mudah:
Opsi-3: redis
gunakan redis di pengontrol seperti:
use Redis;
Dan kemudian dalam suatu tindakan, letakkan ini:
Redis::command('flushdb');
Dan kemudian memicu tindakan itu melalui route::get();
Opsi-5: redis
Buat perintah tukang dengan:
php artisan make:command FlushRedis --command=flush:redis
Kemudian daftarkan di file Kernel.php di app/Console sebagai berikut:
Kemudian dalam metode handle() dari file FlushRedis.php masukkan ini:
Redis::command('flushdb');
Pada akhirnya, jalankan perintah:
php artisan flush:redis
Selesai! Semua pekerjaan yang antri akan dihapus.
Opsi-5: redis + tinker
Terima kasih kepada @edilsoncichon atas komentarnya yang bagus dan memperkenalkan opsi ini.
Di terminal Anda dapat menggunakan perintah ini:
php artisan tinker;
Kemudian lakukan ini:
>>> use Redis;
>>> Redis :: command (‘flushdb’);
Jadi tidak diperlukan penulisan kode!
Catatan:
Ingatkan bahwa Laravel di luar kotak memiliki perintah artisan untuk menghapus semua pekerjaan Anda yang gagal:
php artisan queue:flush
Semoga artikel ini dapat bermanfaat dan jika ada yang belum dimengerti silahkan tinggalkan pertanyaan anda di kolom komentar ya! Terimaksih