Я в настоящее время создаю плагин, связанный с meritmoot.com (который находится в разработке и работает в режиме rolling releases). Из-за использования внешних данных я использую длительную фоновую задачу Sidekiq. К сожалению, по какой-то причине задача постоянно перезапускает внутренний код, не завершаясь с ошибкой и не выдавая сообщений об ошибках. Не упустил ли я что-то в Sidekiq, что может вызывать перезапуск задачи?
В моей последней задаче (которая должна выполняться только раз в сутки), связанной с проверкой присутствия (Roll Calls), задача перезапускалась в следующие интервалы без ошибок:
0 ч 58 мин 42 с (время начала первой итерации)
1 ч 30 мин 12 с (первый перезапуск)
2 ч 1 мин 1 с (второй перезапуск)
3 ч 46 мин 49 с
4 ч 17 мин 11 с
4 ч 47 мин 33 с
Задача не завершилась, и весь прогресс был сброшен. Стоит отметить, что у меня есть собственный процесс логирования, который перенаправляет stderr и stdout для моего внутреннего кода, хотя я сомневаюсь, что это может влиять на Sidekiq. (Спросите меня, если хотите взглянуть — это очень полезно для разработки!)
Я мог бы сохранять прогресс внутри кода, но предпочёл бы более простой процесс, так как это создаёт дополнительные накладные расходы. Не упустил ли я что-то в Sidekiq, что может вызывать перезапуск моего кода?