延迟的工作-入队但从未执行

时间:2018-08-07 21:05:02

标签: ruby-on-rails background queue delayed-job worker

我在Rails应用程序中使用DJ。我的所有入队函数都工作正常,除其中之一外,始终使用方法“ handle_asynchronously”。该代码在开发中效果很好,但是在我的生产环境(Heroku)中,它失败了50%。

调试问题,我发现您总是将作业排入队列,由工作人员执行该作业(正在填充“ locked_at”和“ locked_by”),但是perform函数仅启动50%的时间,随机。虽然100%的工作执行成功被视为成功,并且删除了该行(我已经保留了失败的工作)。

我知道作业没有执行,因为我的延迟例程的第一行是“ puts”命令

我已经尝试过将ActiveJob与DJ一起使用,但问题仍然存在。

有什么想法吗?我用光了解决方案,几乎决定将所有内容重写为ActiveJob模式,以便获得更大的灵活性来尝试不同的库,但是我真的想了解发生了什么并继续使用DJ(主要是因为我不想配置现在是Redis)。

Using delayed_job 4.1.5
Using delayed_job_active_record 4.1.3
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
Rails 5.2.0

0 个答案:

没有答案