rufus调度程序gem无法在rails中工作



我正在使用state_machine gem和rufus调度器gem。状态机运行良好。然而,Rufus调度器却不是。我构建这个程序只是为了习惯rufus gem。在:accepted转换为:both后10秒,它应该转换为:only_eemployer。但是,由于某些原因,rufus调度程序无法工作。转换为:both有效,但不会转换为:only_eemployer。我该如何解决这个问题?谢谢

class Schedule < ActiveRecord::Base
    require 'rufus-scheduler'
    scheduler = Rufus::Scheduler.new
    def set_schedule
        scheduler.in '10' do #documentation says this should be 10 seconds
          self.change_to_done
        end
    end
    state_machine :accepted, :initial => :none do
         after_transition :any => :both, :do => :set_schedule
         event :change_to_done do
             transition :both => :only_employer 
         end
    end
end

使用rufus调度程序是过分的。

def set_schedule
  Thread.new do
    sleep 10
    self.change_to_done
  end
end

应该足够了。

但是,在线程之上运行Rails的"服务器"是友好的吗?如果没有,你最好把任务交给resque或sidekick之类的人。

最新更新