Rufus调度程序和守护程序脚本无法在rails中运行

时间:2013-06-24 09:03:54

标签: ruby-on-rails ruby rufus-scheduler ruby-daemons

我正在制作一个定期运行的脚本,使用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

1 个答案:

答案 0 :(得分:2)

我不知道你的意思是“杀死这个过程”,我猜你的意思是“它会立即退出”。

请阅读: https://github.com/jmettraux/rufus-scheduler#schedulerjoin

在脚本末尾添加:

scheduler.join