Я чувствую, что это глупый вопрос, потому что каждый, кажется, замалчивает этот аспект вещей.Как получить вывод из delayed_job, например, в формате PDF/HTML
Моя потребность проста - я запускаю некоторые отчеты, используя 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, но не похоже, что это относится и к моему вопросу.
Кажется, что то, о чем я прошу, настолько очевидно, что никто не удосужился записать его, но я не могу найти его. Есть пример приложения? Что мне не хватает? Я чувствую себя глупо.
Ну, да, я мог бы - это то, что я имел в виду под термином «Я полагаю, мог бы дать им таблицу и модель ActiveRecord, если бы это помогло» - я мог бы создать, скажем, запись ReportGen, вернуть идентификатор этого новую запись, сохранить состояние и имя файла там, и тогда пользователь может опросить это. , но (а) это звучит как нечто большее, чем я должен был делать, и (б) почему я не могу найти какой-либо образец кода для кого-то другого, делающего что-то подобное? Я бы ожидал, что у записи THAT будет какой-то идентификационный номер для задания, поэтому я могу позже уйти/убрать висячие задания? Откуда мне это получить, и почему я не могу просто передать это? –