由于某些逻辑错误,我有一个失败的sidekiq作业。这项工作会重试多少次?失败的工作去哪了?失败的作业是否在redis的队列中放回?Rails sidekiq重试作业需要多长时间?
另外,sidekiq过程究竟是什么? sidekiq如何推动一个流程排队工作,另一个流程排队工作?那里发生了什么高级别的事情?
由于某些逻辑错误,我有一个失败的sidekiq作业。这项工作会重试多少次?失败的工作去哪了?失败的作业是否在redis的队列中放回?Rails sidekiq重试作业需要多长时间?
另外,sidekiq过程究竟是什么? sidekiq如何推动一个流程排队工作,另一个流程排队工作?那里发生了什么高级别的事情?
并非所有问题的答案,但一些有用的信息:
从sidekiq维基:“如果你没有25重(约21天)内修复bug,Sidekiq将停止和重试“ - (https://github.com/mperham/sidekiq/wiki/Error-Handling#best-practices)
如果您想要监控作业,请在下一个6小时内手动重新执行作业。实时在you-domain/sidekiq
(或任何你设置的)阅读这个如何设置路线:https://github.com/mperham/sidekiq/wiki/Problems-and-Troubleshooting#sidekiq-web-does-not-render-correctly-in-production-but-works-fine-in-development
为了杀死开发失败的作业,我从rails控制台运行$redis.flushdb
。这将取消所有排队的作业。我从来不需要杀死一个,但我确信它有可能以某种方式。
你可以从这个wiki页面选项配置任务重试:https://github.com/mperham/sidekiq/wiki/Error-Handling#configuration 例如: sidekiq_options :retry => 5 # Only five retries and then to the Dead Job Queue
,避免多次入门级问题阅读的最佳做法页:https://github.com/mperham/sidekiq/wiki/Best-Practices 尤其要注意一点:2.使你的工作幂等和交易
总的来说,他们有非常好的维基答案大部分问题。