我有正在处理csv文件的sucker_punch工作者,当dyno断电时,我最初遇到csv文件消失的问题,修复我要为文件存储设置s3。
但我目前担心的是,一个dyno断电是否会阻止我的工作人员进入轨道。
我该如何防止这种情况?
答案 0 :(得分:8)
由于sucker_punch在同一个dyno上使用了一个单独的线程,并且没有使用外部队列或持久性(delayed_job,sidekiq和resque的方式),当你的dyno重新启动或停止时你将会失去工作将无法重新开始工作。在Heroku上,dynos每天至少重启一次。如果您需要持久性并且能够在dyno发生故障时重试作业,我会说切换到其他作业库之一:
然而,这些需要使用Heroku Addon。你可以使用免费版本,但你仍然需要支付额外的工作流程。除此之外,您必须实现自己的持久性并通过包装sucker_punch重试。以下是关于将这些功能添加到sucker_punch的讨论:https://github.com/brandonhilkert/sucker_punch/issues/21他们基本上会说要使用Sidekiq。