我正在制作一个定期运行的脚本,使用rufus调度程序在我的rails应用程序中创建一些代码(我将它与守护进程一起用于生产服务器)。但它根本不起作用,因为它终止并杀死了这个过程。
这是我的脚本/ rufus_schedule文件
#!/usr/bin/env ruby
root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'rubygems'
require 'rufus/scheduler'
gem 'daemons'
require 'daemons'
options = {
:dir_mode => :normal,
:dir => File.join(root,'log'),
:log_output => true,
:backtrace => true,
:multiple => false
}
Daemons.run_proc("rufus_schedule", options) do
scheduler = Rufus::Scheduler.start_new
scheduler.every '10s' do
BloodDonationUtil.clear_requests_after(7)
end
end
答案 0 :(得分:2)
我不知道你的意思是“杀死这个过程”,我猜你的意思是“它会立即退出”。
请阅读: https://github.com/jmettraux/rufus-scheduler#schedulerjoin
在脚本末尾添加:
scheduler.join