У меня есть ActiveJob, который меняет поле статуса записи с «в ожидании» на «живой» X минут после ее создания. Хорошо работает.
Когда пользователь редактирует запись в течение X минут, мне нужно отменить это изменение статуса, а именно. перезагрузите часы. Предположительно, я бы сделал это, отменив ActiveJob и создав новый. В Rails Guides для ActiveJob не упоминается, как это должно быть сделано.
Я вижу, что могу назначить ActiveJob переменной, как эта:
j = ThingLiveJob.set(wait: 1.minute).perform_later(@thing)
и используя byebug
сразу после этой строки (в контроллере), я вижу, что он выводит так:
#<ThingLiveJob:0x000000134a5fc0 @arguments=[#<Thing id: 1095, body: "Whatever", user_id: 1, created_at: "2018-11-19 10:34:24", updated_at: "2018-11-19 10:34:24", status: "pending">], @job_id="aab28c66-f8b4-491e-9c7f-af6f27aa482e", @queue_name="default", @priority=nil, @executions=0, @scheduled_at=1542623724.674397, @provider_job_id="61c154d5-9c1b-45a1-8487-824a4412c53c">
Однако на консоли ни одно из этих предположений не работает:
j.destroy
j.delete
Так, как я должен идти об этом?