delayed_job, отслеживание хода выполнения объекта

Я пытаюсь заставить индикатор выполнения работать с delayed job, но я не знаю, как проверить статус объекта.

У меня есть объект с именем Scrape, и он выполняет некоторый синтаксический анализ канала или что-то еще, поэтому это занимает около 30 секунд. Что я не могу сделать, так это найти способ получить доступ к этому объекту, который имеет целочисленный атрибут прогресса, который отслеживает синтаксический анализ, который я вызову, чтобы создать простой виджет обновления %/css/div/ajax на лицевой стороне.

Могу ли я использовать object_id, поскольку у объекта нет id, пока процесс не будет завершен/сохранен. Если да, то как?

Как получить доступ к этому атрибуту прогресса на моем объекте, который задерживается. Или есть другой способ сделать это?


person thenengah    schedule 08.01.2011    source источник


Ответы (1)


Вам нужно будет использовать какое-то другое хранилище данных, совместно используемое двумя процессами, которое постоянно обновляется. Может ключ memcached?

Процесс delayed_job обновляет этот ключ, а веб-приложение имеет фоновый опросчик на основе AJAX, который обращается к конечной точке, которая, в свою очередь, запрашивает тот же ключ, возвращая клиенту обновление статуса.

person Cody Caughlan    schedule 08.01.2011
comment
Что вы имеете в виду какое-то другое хранилище данных, которое совместно используется двумя процессами. Как я могу это сделать или где пример этого? - person thenengah; 08.01.2011
comment
Собственно, это каким-то образом указало мне правильное направление. Спасибо :) - person thenengah; 08.01.2011