我正在使用sidekiq gem在Rails中处理后台作业。不知何故,作业会在一段时间后停滞——进程变得无响应,在top
上显示但不做任何其他操作,或者神秘地消失,没有错误报告(airbrake.io上没有报告)。
有人有类似的经验吗?
我正在使用sidekiq gem在Rails中处理后台作业。不知何故,作业会在一段时间后停滞——进程变得无响应,在top
上显示但不做任何其他操作,或者神秘地消失,没有错误报告(airbrake.io上没有报告)。
有人有类似的经验吗?
我曾经遇到过这个问题,但没有找到解决方案/根本原因。
我无法干净地解决这个问题,但想出了一个办法。
我配置了God来监视我的Sidekiq进程,并在文件更改时重新启动它们。
然后,我设置了一个Cron作业,每5分钟运行一次,检查所有当前的Sidekiq工作者队列。如果某些工作者的开始时间<=过去的5分钟,则意味着这些工作者由于某种原因而挂起。如果发生这种情况,我会触摸一个文件,这会使God重新启动Sidekiq。对我来说,5分钟是理想的,但这取决于您的作业通常运行多长时间。
这是我能够解决挂起的Sidekiq作业的唯一方法,而不必每小时手动检查它们并自己重新启动。