обратная связь с пользователем для асинхронных задач в рельсах - PullRequest
0 голосов
/ 15 июня 2011

У меня есть действие, которое выполняет «возможную» долгосрочную задачу. Это возможно, поскольку он выполняет запрос к удаленному серверу и из-за задержки в сети может блокировать пользовательский интерфейс и давать небольшую задержку пользователю.

Мой вопрос связан не с тем, «как отправлять длинные задачи в фоновом режиме», а с тем, как отправить пользователю уведомление. Моя идея состояла в том, что пользователь нажимает кнопку, она запускает задачу в фоновом режиме, веб-интерфейс разблокируется, и пользователь может делать все, что он хочет, и, когда задача выполнена, он получает флэш-сообщение. Я могу сделать это с AJAX, опрашивая сервер, например, определенное действие, которое дает мне статус моей задачи, но есть какой-нибудь шаблон, чтобы сделать это основанным на событиях? Слава за ответы с доказательством концепции или прототипов.

1 Ответ

1 голос
/ 15 июня 2011

Здесь нет подтверждения концепции, но вы можете использовать что-то вроде spawn или delayed_job, чтобы запустить задачу Rails и разблокировать интерфейс, а затем связаться с клиентом с помощью node.js или чего-то подобного.Однако в зависимости от того, что вы хотите сделать, длительный опрос может оказаться более практичным, чем настройка большего количества серверного программного обеспечения.

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