Рубиновый эквивалент ASP.NETs Application_Start? - PullRequest
1 голос
/ 16 июня 2009

Я хотел бы запустить поток, который просыпается каждые столько секунд, чтобы выполнить некоторую обработку в веб-приложении Ruby-on-Rails. В .NET логичным местом было бы создать поток в файле global.asax и запустить его в Application_Start.

Существует ли подобная парадигма для подобных вещей в RoR? Будет ли это сделано в ApplicationController?

В качестве отступления: я ввожу неправильные строки поиска или поисковые системы действительно плохо находят информацию для создания приложений RoR?

Ответы [ 4 ]

3 голосов
/ 16 июня 2009

У Rails на самом деле нет эквивалента. Whenever RubyGem - это хорошая абстракция Cron, которая позволяет вам использовать синтаксис, как в примере ниже, из вашего приложения Rails:

every 30.seconds do
  # Do something interesting...
end

Некоторые ресурсы, которые вы можете найти полезными:

0 голосов
/ 16 июня 2009

Пару лет назад я пытался daemon_generator , но по какой-то причине теперь забыл, что я никогда не заканчивал тем, что использовал его.

0 голосов
/ 16 июня 2009

На этот вопрос нет однозначного ответа, поскольку он сильно зависит от ваших конкретных требований. Конечно, однако, нет прямого эквивалента концепции, которую вы описываете в ASP.NET. Тем не менее, вы захотите взглянуть на Фоновую обработку на Rails как отличную отправную точку.

0 голосов
/ 16 июня 2009

Поисковые системы не только плохие, но почти единственное место, где вы найдете информацию для RoR. (

Я думаю, что парадигма, которую вы ищете, - это работа cron, хотя это предполагает, что вы работаете под Linux. То, что я видел чаще всего, это, по сути, «запланированная задача», которая сносит страницу каждые X y, и обработка выполняется в рамках этого запроса. Вы даже можете сделать это удаленно, указав запланированное задание на «хитпоинте» cron удаленного блока.

Вы могли бы поместить код в ApplicationController и проверить его, чтобы увидеть, было ли задание выполнено в последние X y, но проблема в том, что вы могли голодать для запросов дольше, чем намеченный интервал .

Удачи!

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