опрос с delayed_job

У меня есть процесс, который обычно занимает несколько секунд, поэтому я пытаюсь использовать delayed_job для его асинхронной обработки. Само задание работает нормально, мой вопрос в том, как провести опрос, чтобы узнать, выполнено ли оно.

Я могу получить идентификатор от delayed_job, просто назначив его переменной:

job = Available.delay. dosomething (: var => 1234)

+------+----------+----------+------------+------------+-------------+-----------+-----------+-----------+------------+-------------+
| id   | priority | attempts | handler    | last_error | run_at      | locked_at | failed_at | locked_by | created_at | updated_at  |
+------+----------+----------+------------+------------+-------------+-----------+-----------+-----------+------------+-------------+
| 4037 | 0        | 0        | --- !ru... |            | 2011-04-... |           |           |           | 2011-04... | 2011-04-... |
+------+----------+----------+------------+------------+-------------+-----------+-----------+-----------+------------+-------------+

Но как только он завершает задание, он удаляет его и поиск завершенной записи возвращает ошибку:

@job=Delayed::Job.find(4037)

ActiveRecord::RecordNotFound: Couldn't find Delayed::Backend::ActiveRecord::Job with ID=4037

@job= Delayed::Job.exists?(params[:id])

Стоит ли мне изменить это и, возможно, отложить удаление полных записей? Я не знаю, как еще я могу получить уведомление о его статусе. Или опрос мертвой записи в качестве доказательства завершения - это нормально? Кто-нибудь еще сталкивался с чем-то похожим?

33
задан holden 13 April 2011 в 20:19
поделиться