С помощью стека Rails, как я могу создать фоновый процесс, который обрабатывает события, порождая потоки, которые работают в реальном времени? - PullRequest
1 голос
/ 18 марта 2011

С помощью стека Rails, как я могу создать фоновый процесс, который обрабатывает события, порождая потоки, которые обрабатываются в реальном времени?

Работники Heroku выбирают задания каждые 5 секунд.Мне нужно в реальном времениВ идеале я бы хотел, чтобы это сработало на Heroku, но если мне нужно, я отойду от этого.

Ответы [ 4 ]

1 голос
/ 18 марта 2011

Я думаю, что вы ищете что-то вроде "run_later", который вместо постановки в очередь фактически возвращает запрос и запускает блок в отдельном процессе.

Вот ссылка на версию Rails 3+,Вы можете следовать по сети форка, чтобы найти множество других реализаций:

https://github.com/Zelnox/run_later

(я не использую Heroku, поэтому не знаю, работает ли он на нем)

1 голос
/ 18 марта 2011

Имеется длинный список фоновых работников: Менеджер фоновых заданий для Rails 3 , но не ясно, конкретен ли ваш вопрос по герою или нет

0 голосов
/ 19 июня 2013

Я думаю, вам нужно delay_job . пожалуйста, закажите этот драгоценный камень

0 голосов
/ 06 июня 2011

Heroku запускает грабли: работа, так что вы можете заменить ее своей собственной задачей, либо запустить delayed_job с периодом ожидания менее 5 секунд, либо просто выполнить свою задачу. Вероятно, это хорошая идея, чтобы сохранить там сон.

Новый стек кедра будет запускать все, что вы захотите, так что, возможно, стоит проверить это.

Что касается run_later или порождения из текущего запроса, это работает, но если фоновый процесс не завершится в течение 30-секундного тайм-аута запроса, то heroku убьет его.

...