Od API Rails, znalazłem ActiveJob może retry_job przedziale:Jak ustawić liczbę ponownych prób dla Sidekiq przy pomocy ActiveJob?
my_job_instance.enqueue
my_job_instance.enqueue wait: 5.minutes
my_job_instance.enqueue queue: :important
my_job_instance.enqueue wait_until: Date.tomorrow.midnight
Ale jeśli chcę ustawić liczbę ponownych prób, takich jak Sidekiq to:
include Sidekiq::Worker
sidekiq_options :retry => 5
Jak wykonać ten przykładowy kod?
class SiteScrapperJob < ActiveJob::Base
rescue_from(ErrorLoadingSite) do
retry_job queue: :low_priority
end
def perform(*args)
# raise ErrorLoadingSite if cannot scrape
end
end
Teraz dodałem to do mojej klasy pracy:
Sidekiq.default_worker_options = { retry: 5 }
Ale to nie wydaje się być bardzo dobre.
Jesteś niepoprawny. "Ponów" może być liczbą. https://github.com/mperham/sidekiq/wiki/Error-Handling#configuration –
Tytuł twojego pytania mówi "z ActiveJob". Adres URL wysłany nie pochodzi z ActiveJob. Właściciel repo (@MikePerham) odpowiedział również, że nie możesz –
Dziękuję. Dodałem 'Sidekiq.default_worker_options = {retry: 5}' do mojej klasy. Ale wydaje się, że praca jest gorsza (spróbuj ponownie wiele razy dziennie!). Domyślne czasy ponowienia to 25. Czy nie mogę go dostosować? – scho