Например, у меня есть работа, которую я хочу повторять каждые 1 час. Вот мой код:
class NewsletterJob < ApplicationJob
queue_as :default
after_perform do |job|
NewsletterJob.set(wait: 1.hour).perform_later user
end
def perform(*args)
puts "I am busy mailing newsletter."
end
end
Мой вопрос: как я могу вызвать приведенный выше код, который удовлетворяет 2 условиям:
- запускается автоматически при запуске сервера.
- запустить только один раз. Например, я использую sidekiq для очереди сообщений. Поэтому я хочу, чтобы при следующем перезапуске сервера был доступен только один экземпляр задания.