Настройка драгоценного камня Delay Jobs - PullRequest
1 голос
/ 09 августа 2011

Я использую Ruby on Rails 3.0.9 и пытаюсь настроить гем delay_job для своего веб-приложения, чтобы отправлять электронные письма следующим образом:

Notifier.delay.send_email(@user)

Каккак написано в официальной документации по гемам, для запуска «отложенных заданий» я должен использовать одну из следующих строк кода

$ RAILS_ENV=production script/delayed_job start
$ RAILS_ENV=production script/delayed_job stop

# Runs two workers in separate processes.
$ RAILS_ENV=production script/delayed_job -n 2 start
$ RAILS_ENV=production script/delayed_job stop

или вызвать задачу rake jobs:work.

Врабочий режим Я предпочитаю использовать один из операторов RAILS_ENV=..., но мне хотелось бы знать , где (то есть в каком файле) я должен добавить этот код , чтобы запустить рабочих при запуске приложения (КСТАТИ: в настоящее время я не использую Capistrano для развертывания моего приложения).

Более того, я хотел бы знать, что именно "рабочие" и если мой VPS-хостинг (работает Ubuntu 10.04 LTS) может работать несколькоте, или как узнать, сколько рабочих может работать на моем сервере.

Наконец, я хотел бы знать, какие опции я могу добавить в файл config/initializers/delayed_job.rb и есть ли какие-то советы или рекомендации по поводу гема Задержка задания.

1 Ответ

1 голос
/ 09 августа 2011

Чтобы запустить ваших работников при запуске приложения, я бы просто вызвал соответствующую команду из инициализатора.Код для этого будет выглядеть следующим образом:

system "RAILS_ENV=production #{Rails.root.join('script','delayed_job')} stop"
system "RAILS_ENV=production #{Rails.root.join('script','delayed_job')} -n 2 start"

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

...