2011-01-14 5 views
-2

내가 루퍼스 :: 스케줄러가 작업을 예약하는 데 사용에 마지막에 할 수 없습니다 출구에 가입, 코드가 아래와 같습니다 :이 코드를 실행 한 후루퍼스 :: 스케줄러 루비

class Scheduler 
    def self.run 
    scheduler = Rufus::Scheduler.start_new 
    job = scheduler.in '5s', A.new 
    scheduler.join 
    end 
    class A 
    def call(job) 
     puts "xxxxxx" 
    end 
    end 
end 
Scheduler.run 

인쇄를하고있다 'XXXX' ,하지만 call 메소드를 실행 한 후에는 join 자체를 종료 할 수없고 항상 중단됩니다.

작업을 끝내기 위해 대기 한 후 가입을 종료 할 수있는 방법이 있습니까? 고마워.

+0

예약 된 작업을 우아하게 중단하는 방법을 아는 사람이 있습니까? – ywenbo

+0

누군가 내 질문에 답변 할 수 있습니까? 미리 감사드립니다. 스레드에 대한 – ywenbo

답변

-3

사용 일반 스레드는 요구 사항에 도달 할 수 있습니다.

2

스케줄러는 "영원히"실행됩니다. "join"을 호출하면 스케줄러 스레드가 조인되고 스레드가 종료 될 때 종료됩니다.

코드를 재검토해야합니다. 스크류 드라이버와 같은 해머를 사용하려고합니다.

+0

, 조인 된 스레드가 모든 것을 끝내면 주 스레드가 종료되고 길은 더 합리적입니다. 스케줄러에 대해 나는 그것이 있어야한다고 생각하지만 그렇지 않습니다. 지금 내가 원하는 것은 그것이 일정의 기능을 가지고 있고, 영원히 대신에 스스로 빠져 나갈 수 있다는 것입니다. – ywenbo

+1

No. 작업 후 종료해야하는 경우 잠자기로 작업을 수행하고 종료하십시오. – jmettraux

+0

합리적이지 않다, 다른 일은 끝내기 다른 시간을 필요로한다, 그것은 예기 할 수 없다, 잠을위한 시간을 설정하는 방법, 실제적이지 않다 – ywenbo