2014-08-28 3 views
0

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

Поскольку я использую faye для push-уведомлений и sidekiq для фоновых задач, потенциальным решением могло бы стать создание отчета в sidekiq-работнике и использование faye для уведомления клиента о завершении работника. Проблема с этим заключается в том, что я не вижу способ очистки созданного файла элегантно. Я не думаю, что создание файла в рамках действия контроллера возможно, поскольку это приводит к необоснованным временам загрузки и блокирует другие запросы.

Возможно ли использование этой системы? Или я думаю об этом неправильно?

ответ

1

Вы правы, это совершенно правильно, что-то делать.

Я не уверен, что вы имеете в виду «очистка сгенерированного файла». Если вы хотите удалить из файловой системы, вы можете сделать это в контроллере, который загрузит его, и в конечном итоге добавить ежедневное задание cron, которое удалит все остальные файлы.

Мы использовали такую ​​систему в различных проектах.

Другой вариант, если генерация действительно длинная, заключается в том, чтобы отправить электронное письмо (если оно было получено) после создания отчета с помощью встроенного отчета или с ссылкой на него.