Rails - Как я могу отобразить ход очереди delayed_job? - PullRequest
3 голосов
/ 19 мая 2011

Я новичок в Ruby on Rails и у меня есть проект rails, который выполняет массивные фоновые задачи (например, копирование нескольких сотен файлов одновременно). В настоящее время работа выполняется в фоновом режиме с использованием delayed_job, но я хотел бы дать пользователю некоторое представление о том, сколько времени осталось от процесса.

Моей первоначальной мыслью было показать пользователю какой-нибудь индикатор выполнения, но в этот момент я согласился бы просто отобразить обратный отсчет задач в функции Delayed :: Job.count. Я предполагаю, что не было бы слишком сложно иметь представление AJAX, которое динамически обновляется на основе функции Delayed :: Job.count, но мой вопрос заключается в том, как мне реализовать это в моем представлении?

заранее спасибо

1 Ответ

3 голосов
/ 19 мая 2011

Вы могли бы, чтобы javascript вызывал AJAX-запрос каждые десять секунд с помощью

setTimeout(f, time);

После запроса вы должны установить setTimeout (f, time);функционировать снова.

Если вам известен идентификатор отложенного задания, вы сможете запросить количество заданий выше идентификатора, который вы обрабатываете.

...