Laravel-5.8 队列的清除问题
在使用laravel队列的时候,因为拉取数据的数量越来越多,所以从以前的单一队列改成了现在的多个队列来执行不同的任务。
然后现在遇到的问题是在4个队列同时进行任务的时候,其中一个队列卡死(补充说明:任务不是失败,只是因为卡住了,所以queue:failed 还有 retry 和 flush 等命令都是不能达到我的目的的。给第一位提供帮助的带来了误解,很抱歉),但是剩余三个队列正常执行。所以需要将指定的某一个队列全部移除再重新跑。
以前执行的命令都是全部清除:
redis-cli;
flushall;
或者重启:
php artisan horizon:terminate
supervisorctl reload
先贴个截图
想请教下,我该怎么只把a全部删除呢?
本作品采用《CC 协议》,转载必须注明作者和本文链接
php artisan queue:failed
列出任务 ID、连接、队列和失败时间,任务 ID 可用于重试失败任务,例如,要重试一个 ID 为 5 的失败任务,可以运行下面的命令:php artisan queue:retry 5
要重试所有失败任务,运行如下命令即可:
php artisan queue:retry all
如果你要删除一个失败任务,可以使用 queue:forget 命令:
php artisan queue:forget 5
要删除所有失败任务,可以使用 queue:flush 命令:
php artisan queue:flush
有一个包应该可以满足你的需求 morrislaptop/laravel-queue-clear

queue
参数支持选择队列名修改队列配置文件,每一个队列配置不同redis数据库,redis可以清除指定数据库的数据
既然是卡死,那你没必要移除所有任务。只需要kill掉卡死的worker进程就可以了。
如果你不知道哪个worker卡死了,可以先用常规操作停止所有worker,停不掉的那个就是你需要kill掉的。
插个眼~~