Rails Создание нового потока или фонового процесса - PullRequest
5 голосов
/ 30 января 2012

У меня возникает проблема ошибки тайм-аута, когда я нажимаю на ссылку Export to Excel в моем приложении, из-за больших транзакций в БД.Я хочу изменить эту функциональность на фон, чтобы пользователь мог двигаться вперед во время фонового процесса.Я хочу, когда пользователь нажимает на Export to Excel фон ссылки / запускается новый процесс потока, и пользователю отправляется электронное письмо со ссылкой для загрузки файла.Я хочу знать, какой лучший способ добиться этого Создание нового потока или фонового процесса?

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

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Вы можете использовать https://github.com/defunkt/resque или https://github.com/collectiveidea/delayed_job.

Вы также можете смотреть:

http://railscasts.com/episodes/271-resque

http://railscasts.com/episodes/171-delayed-job-revised

http://railscasts.com/episodes/171-delayed-job (старый из вышеперечисленных, но бесплатный - но стоит купить подписку)

0 голосов
/ 30 января 2012

Существует три типа очередей сообщений:

  1. Нет очередей - для фоновой задачи будет запущен новый поток / процесс, например: spawn
  2. База данных управляется - соответствующая задача будетхранится в таблице в базе данных и будет автоматически удаляться по завершении, например: backgroundrb, отложенное задание
  3. очереди сообщений - сохраненные задания в памяти, например: starling

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

...