2011-01-08 2 views
1

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

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

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

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

ответ

5

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

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

+0

Что вы подразумеваете под другим хранилищем данных, которое разделяется между двумя процессами. Как я могу это сделать или где это пример? – s84

+0

Собственно, это как-то указывало мне в правильном направлении. Благодаря :) – s84

Смежные вопросы