Как долго может работать sucker_punch на heroku?
У меня есть рабочий sucker_punch, который обрабатывает CSV-файл, у меня изначально была проблема с исчезновением CSV-файла при выключении динамометрической системы, чтобы исправить это, я собираюсь настроить s3 для хранения файлов.
Но сейчас меня беспокоит, не остановит ли динамо мой рабочий на своем пути.
Как я могу предотвратить это?
1 ответ
Так как sucker_punch использует отдельный поток в той же самой dyno и не использует внешнюю очередь или постоянство (как делают delayed_job, sidekiq и resque), вы будете подвержены потере работы, когда ваш dyno будет перезагружен или остановлен, и у вас будет нет возможности перезапустить работу. На Heroku динамо перезагружается как минимум раз в день. Если вам нужна настойчивость и возможность повторить работу в случае выхода из строя динамо, я бы сказал, переключитесь на одну из других библиотек заданий:
- https://github.com/collectiveidea/delayed_job
- https://github.com/mperham/sidekiq
- https://github.com/resque/resque
Однако для этого требуется использовать Heroku Addon. Вы можете получить доступ к бесплатной версии, но вам все равно придется платить за дополнительный рабочий процесс. В остальном вам придется реализовать свое собственное постоянство и повторить попытку, обернув sucker_punch. Вот обсуждение добавления этих функций в sucker_punch: https://github.com/brandonhilkert/sucker_punch/issues/21 Они в основном говорят, что вместо этого используют Sidekiq.