Как я могу управлять долгосрочным процессом из приложения Rails? - PullRequest
2 голосов
/ 27 февраля 2010

Я создаю приложение для изучения Rails, и я не знаю, как это сделать.

У меня есть форма, в которую пользователь вводит некоторые данные. Данные проверяются, и процесс на стороне сервера должен начаться (процесс может занять от 5 минут до 2 часов). Я хотел бы быть в состоянии знать состояние процесса в любое время и иметь возможность убить его. То, что я не знаю, как сделать, это запустить процесс. Я знаю о system, обратных галочках и всех способах выполнения внешних команд из кода Ruby ... Дело в том, что если я сделаю это с контроллера, будет ли сервер по-прежнему обрабатывать запросы от других пользователей? Кроме того, это должно быть запущено с контроллера? Одна из вещей, которые мне нужно будет сделать, - отобразить вывод процесса внутри страницы (по мере его выполнения).

Как мне запустить и управлять (убивать / перезапускать) длительным процессом в Rails? Как бы я сделал это так, чтобы каждый пользователь мог запустить свой собственный процесс?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2010

Я думаю, вам стоит взглянуть на delayed_job . Он должен делать именно то, что вы после.

0 голосов
/ 27 февраля 2010

Изучите плагин фоновой работы: http://backgroundrb.rubyforge.org/ Он имеет хорошие функции и поддержку сообщества.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...