Я пытаюсь запустить работу через 3 минуты после того, как действие контроллера было выполнено.Начните работу за X минут
Я попробовал это, с DelayedJob:
# in my controller
def index
@books = Book.all
Delayed::Job.enqueue(ReminderJob.new(params[:user_id]))
end
И в ReminderJob.rb
файле:
class ReminderJob < Struct.new(:user_id)
def perform
p "run reminder job"
# do something
end
handle_asynchronously :perform, :run_at => Proc.new { 3.minutes.from_now }
end
Однако, при обращении к индексной страницы, я не вижу в ничего бревнами, и Через 3 минуты ничего не происходит.
Что я сделал не так? Есть ли другой рекомендуемый способ запуска задачи «через X минут» без использования sleep
?
вы читали [Общие проблемы #-ничего-не бывает] (https://github.com/ collectiveidea/delayed_job/вики/Общие проблемы #-ничего-не бывает)? –
Почему вы не используете встроенный «ActiveJob» рельсы? – siegy22
@RaVeN Я не мог найти способ сказать «начать эту работу за X минут» с помощью activeJob. Это возможно ? –