怎么删除 horizon 中失败的任务?

很高兴,第一次接触队列,哈哈,一切顺利!
有个小问题:horizon 中失败的任务怎么删掉,强迫症~~
删掉 failed_jobs 表中的数据也没有效果,不知道 horizon 中的任务记录都保存在哪里?
另外,如果在 horizon 面板中点击失败任务的 retry,仍然是执行之前错误的代码,结果仍是失败。。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

很遗憾的是 Horizon 面板目前并没有删除功能,不支持移除单个失败的任务。
而且也没有相关的 artisan 命令能直接删除失败任务,只能「手工」在 redis 中进行删除,你不妨可以这么做:
自定义一条 artisan 命令,内容为:

Redis::connection()->del('horizon:failed:*');
Redis::connection()->del('horizon:failed_jobs');

其实我比较希望官方能在失败任务的后面增加一个 remove 按钮。

5年前 评论
讨论数量: 3

php artisan queue:work redis --tries=3

当重试3次依旧失败后,任务会被删除

队列

5年前 评论

很遗憾的是 Horizon 面板目前并没有删除功能,不支持移除单个失败的任务。
而且也没有相关的 artisan 命令能直接删除失败任务,只能「手工」在 redis 中进行删除,你不妨可以这么做:
自定义一条 artisan 命令,内容为:

Redis::connection()->del('horizon:failed:*');
Redis::connection()->del('horizon:failed_jobs');

其实我比较希望官方能在失败任务的后面增加一个 remove 按钮。

5年前 评论

真要是全部想清空,也可以本地安装个 Redis 客户端,例如:phpRedisAdmin,然后直接进去把 horizon 的 Key 全部删除即可。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!