2012-02-02 2 views
2

Я пишу веб-приложение, которое нужно будет запустить фоновый процесс, который будет опроса веб-службы каждую минуту или около того, а затем запросить мой Rails и отправить уведомления пользователям приложения через Twitter. Я много исследовал это, но я чувствую, что просто обойдусь кругами. Я встретил delayed_job, background_job и несколько других параметров, например создание пользовательского демона, предлагаемого в Railscast. У кого-нибудь есть предложения по наилучшему способу сделать это? Этот процесс должен постоянно работать в фоновом режиме и не будет инициироваться событием в интерфейсе. Любая помощь или руководство будут оценены.Фоновый процесс в Rails 3

ответ

1

Почему бы вам просто не создать задачу грабли и не добавить ее к выполнению CRON?

Вы можете использовать Whenever, чтобы настроить это для вас.

+0

Спасибо за ответ. Я займусь этим. – Hugs

+0

Будет ли это работать на localhost? Я обновляю свой crontask, но я не думаю, что рейк начинает работать. Я могу запустить мой рейк вручную в терминале. Я мог бы потенциально называть мой рейк неправильно в файле schedule.rb всякий раз. – Hugs

+0

Что вы имеете в виду: «будет ли это работать на localhost?»? Вы спрашиваете, будет ли он работать на вашей машине разработки? –

0

Вы можете просто использовать хрон для выполнения задач, которые должны быть выполнены каждые Х минут, часов и т.д.

камень всякий раз, когда это полезно установить это с рельсами: https://github.com/javan/whenever

Я не» Знаю много о delayed_job. Но вы можете проверить некоторые уроки, например, эту статью о heroku: http://devcenter.heroku.com/articles/delayed-job

+0

Github давно задерживается longed_job и создал resque, чтобы исправить его проблемы -> https://github.com/defunkt/resque –

+0

Да, вы правы. Я обновил свой anwser ;-), и я, кажется, предложил такое же решение, как вы. – Johny

0

Я использовал delayed_job для нашего приложения.

Работая над этим, мы исследовали многие сайты и, наконец, можем применить его.

Мы применяем наш опыт в следующей ссылке

http://www.kyybaventures.com/blog/rails-delayed-job#more-2916

Надеется, что это поможет начать работу с фоновым процессом в рельсах 3.

0

Мы можем использовать либо backgroundrb или unix crontab.

Crontab выполнит эту работу, если вы не хотите отправлять heavy loaded process to run asynchronously в течение цикла процесса запроса приложения.

Backgroundrb потребляет много памяти и процессора в производственной среде, если какой-либо из процессов зависает. Также нам нужно настроить monitor tool, чтобы убедиться, что фоновый процесс запущен.

Смежные вопросы