Rails — Как отобразить ход выполнения очереди delayed_job?

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

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

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


person John Clem    schedule 19.05.2011    source источник


Ответы (1)


Вы можете вызывать javascript запрос AJAX каждые десять секунд с помощью

setTimeout(f, time);

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

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

person drhenner    schedule 19.05.2011