저는 state_machine gem과 rufus-scheduler gem을 사용하고 있습니다. 상태 머신이 완벽하게 작동합니다. 그러나 Rufus-scheduler는 그렇지 않습니다. 루퍼 스 보석에 익숙해지기 위해서이 프로그램을 만들고 있습니다. 10 초 후 : 허용됨으로 전환 : 둘 다, 다음으로 전환해야합니다 : only_employer. 그러나 rufus-scheduler가 작동하지 않습니다. 전환 : 둘 다 작동하지만 그 후에는 only_employer로 전환되지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 감사.rufus-scheduler 보석이 레일에서 작동하지 않습니다.
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
set_schedule 메소드에서 마지막 명령문으로 scheduler.join을 추가하십시오. BTW 난 이런 식으로 rufus - 스케줄러를 사용하지 말아야한다고 생각합니다 – Aguardientico
고마워, 추가했지만 작동하지 않았다. 나는 문서를 보았지만 'scheduler.join'이 무엇을해야하는지 알 수 없다. 설명해 주시겠습니까? – Philip7899
'scheduler.join'은 현재 스레드를 스케줄러 스레드에 결합시킵니다. 당신이 원하는 것이 아닙니다. 'scheduler.join'은 독립 실행 형 스크립트에서 사용되며 Rails 또는 Sinatra를 통해 실행되는 코드에서는 사용되지 않습니다. – jmettraux