长时间运行的Sidekiq作业持续死亡

6

我正在使用sidekiq gem在Rails中处理后台作业。不知何故,作业会在一段时间后停滞——进程变得无响应,在top上显示但不做任何其他操作,或者神秘地消失,没有错误报告(airbrake.io上没有报告)。

有人有类似的经验吗?

2个回答

8

1

我曾经遇到过这个问题,但没有找到解决方案/根本原因。

我无法干净地解决这个问题,但想出了一个办法。

我配置了God来监视我的Sidekiq进程,并在文件更改时重新启动它们。

然后,我设置了一个Cron作业,每5分钟运行一次,检查所有当前的Sidekiq工作者队列。如果某些工作者的开始时间<=过去的5分钟,则意味着这些工作者由于某种原因而挂起。如果发生这种情况,我会触摸一个文件,这会使God重新启动Sidekiq。对我来说,5分钟是理想的,但这取决于您的作业通常运行多长时间。

这是我能够解决挂起的Sidekiq作业的唯一方法,而不必每小时手动检查它们并自己重新启动。


2
你能分享一下这个脚本吗? - Pablo Cantero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接