Мне кажется, что это глупый вопрос, потому что все, кажется, затмевают этот аспект вещей.
Моя потребность проста - я запускаю некоторые отчеты, используя Ruport на Heroku.Сложные отчеты занимают много времени, и они истекают.Я решил использовать delayed_job - но я мог бы использовать что-то еще вместо этого.Как только я узнаю, что я делаю, я могу использовать это и для других целей.
Я вижу множество примеров, Railscasts, документацию о том, как запустить delayed_job и его братьев, как управлять вашимОчередь заданий и т. д. У меня могут возникнуть некоторые вопросы, как только я доберусь до этой точки, но сейчас ...
Как, черт возьми, я могу вернуться к своей работе в очереди?
Прямо сейчас,Я просто генерирую вывод, как это:
@report_output = @report_controller.render(@report_format,@report_params)
send_data @report_output, :filename => "#{@report_type}.#{@report_format}", :type => "application/#{@report_format}" unless :html == @report_format
(а затем, если это HTML-отчет, он просто отображает страницу нормально)
он отлично работает в разработке, время ожидания в производстве,Из документации видно, что было бы довольно просто сгенерировать вывод и отправить его пользователю по почте, тогда мне не нужно беспокоиться о возврате работы.
Но я не хочутот.Я просто хочу показать пользователю страницу прогресса, регулярно опрашивать сервер, пока это не будет сделано, а затем перенаправить его, чтобы увидеть вывод HTML или PDF.Я ожидаю, что это вернет какой-то идентификатор задания и вернет его пользователю, чтобы он мог проверить его, но я не вижу, откуда это происходит.Полагаю, я мог бы просто посмотреть в таблицу, но это кажется глупым.Я мог бы даже показать пользователю список поставленных в очередь / выполненных заданий и позволить им выбрать одно вручную, но это излишне.Они просто хотят загрузить отчет и не возражают, если это займет минуту или две.
На самом деле я не использую таблицу для своих отчетов, нет необходимости, они не сохраняются -но я полагаю, мог бы дать им таблицу и модель ActiveRecord, если это помогло.Не похоже, что мне нужно это делать.Я использую Rails 2.3, но, похоже, это не относится и к моему вопросу.
Кажется, то, что я спрашиваю, настолько очевидно, что никто не удосужился записать его, но яне могу найти это.Есть ли пример приложения?Что мне не хватает?Я чувствую себя глупо.