2017-03-07 58 views
0

由于某些逻辑错误,我有一个失败的sidekiq作业。这项工作会重试多少次?失败的工作去哪了?失败的作业是否在redis的队列中放回?Rails sidekiq重试作业需要多长时间?

另外,sidekiq过程究竟是什么? sidekiq如何推动一个流程排队工作,另一个流程排队工作?那里发生了什么高级别的事情?

回答

2

并非所有问题的答案,但一些有用的信息:

  1. 从sidekiq维基:“如果你没有25重(约21天)内修复bug,Sidekiq将停止和重试“ - (https://github.com/mperham/sidekiq/wiki/Error-Handling#best-practices

  2. 如果您想要监控作业,请在下一个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

  3. 为了杀死开发失败的作业,我从rails控制台运行$redis.flushdb。这将取消所有排队的作业。我从来不需要杀死一个,但我确信它有可能以某种方式。

  4. 你可以从这个wiki页面选项配置任务重试:https://github.com/mperham/sidekiq/wiki/Error-Handling#configuration 例如: sidekiq_options :retry => 5 # Only five retries and then to the Dead Job Queue

  5. ,避免多次入门级问题阅读的最佳做法页:https://github.com/mperham/sidekiq/wiki/Best-Practices 尤其要注意一点:2.使你的工作幂等和交易

总的来说,他们有非常好的维基答案大部分问题。