Я использую Rails 5.1, ruby 2.5, Sidekiq.
Я настроил простой вариант использования:
class RetryJobException < Exception
end
class CustomJob < ActiveJob::Base
retry_on RetryJobException, wait: 3.seconds, attempts: 2 do
puts "RETRYING"
end
def perform(*args)
raise RetryJobException
end
end
Здесь происходит следующее: когда я запускаю это задание и оно вызывает RetryJobException
, CustomJob
перезапускается через 30 секунд (а не три ...) в течение неопределенного числа раз (а не 2), пока я не убью процесс Сидекика. «RETRYING» никогда нигде не печатается, что является признаком того, что код в блоке retry_on
никогда не выполняется.
Согласно документации это должен быть базовый вариант использования, но у меня есть эти проблемы. Что я делаю не так?