0

私は state_machine gem と rufus-scheduler gem を使用しています。ステート マシンは完全に機能しています。ただし、Rufus-scheduler はそうではありません。rufus gem に慣れるためだけにこのプログラムを作成しています。:accepted が :both に遷移してから 10 秒後に、:only_employer に遷移する必要があります。しかし、何らかの理由で rufus-scheduler が機能していません。:both への移行は機能しますが、:only_employer への移行は行われません。これを修正するにはどうすればよいですか? ありがとう。

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
4

1 に答える 1

0

これに rufus-scheduler を使用するのはやり過ぎです。

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

十分なはずです。

では、Rails を実行する「サーバー」はスレッド フレンドリーでしょうか? そうでない場合は、タスクを resque や sidekick などに渡すことをお勧めします。

于 2013-11-27T00:31:12.333 に答える