Я поместил свою задачу cron в модуль, а затем на мой сервер Sinatra.
module Cron
scheduler = Rufus::Scheduler.new
scheduler.every "30m", :first => :now do
run_cmd('git pull')
puts "pulled the repo!!!"
end
end
class MyServer < Sinatra::Base
include Cron
end
Точка входа для приложения - единорог (unicorn config/config.ru -p 9393 -c config/unicorn.rb
), а в unicorn.rb
этоline
worker_processes 7
Из-за этого git pull запускается семь раз каждые 30 минут, а pulled the repo!!!
печатается семь раз.
Есть ли способ выполнить эту задачу только водна нить? Я попытался поместить его в unicorn.rb выше worker_processes 7
строки, но я не уверен, что это лучшее место для этого кода.