Rails: запуск нескольких скриптов Ruby на сервере - PullRequest
0 голосов
/ 18 июля 2011

У меня есть сервер Rails, который в настоящий момент работает безупречно (Ruby Enterprise + Passenger + Apache).

Он также должен запускать некоторые независимые сценарии ruby ​​(настройка серверов localhost XML-RPC) в фоновом режиме. Каков наилучший способ сделать это?

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 19 июля 2011

Рассмотрите возможность использования Форман . Он позволяет вам задавать фоновые процессы в простом текстовом Procfile и запускать их с foreman start.

Если вы хотите запустить веб-сервер и фоновые сценарии вместе с одной командой, и вы можете использовать Passenger Standalone, ваш Procfile может выглядеть примерно так:

web:    passenger start
rpc:    ruby rpc_server.rb
worker: script/delayed_job
0 голосов
/ 19 июля 2011

Ссылка в комментариях к другому вопросу (от Smar, спасибо):

http://railscasts.com/episodes/127-rake-in-background

мне показалось, что работает нормально. Мне не нужен Форман или какой-либо другой инструмент.

Мне просто нужно было добавить это в Rakefile:

desc "Start some other jobs"
task :start_other_jobs do
    system "ruby job1.rb &"
    system "ruby job2.rb &"
end

(обратите внимание на амперсанд, чтобы он работал как фоновая задача)

и затем запустите его по

rake start_other_jobs

Легко, не правда ли? : D

0 голосов
/ 19 июля 2011

Я попробовал Starling / Workling и обнаружил, что их сложно настроить и продолжать работать по сравнению с delayed_job.В любом случае вам понадобится монитор процесса, такой как Бог или Монит , чтобы убедиться, что любое решение, которое вы выберете, будет работать.

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