2011-01-14 50 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」 ,但是在運行調用方法之後,連接不能自行退出並且總是掛斷。

有沒有辦法在等待完成工作後退出連接?謝謝你。

+0

有沒有人知道如何優雅地停止預定的工作? – ywenbo

+0

有人可以回答我的問題嗎?先謝謝你。針對Thread的 – ywenbo

回答

-3

使用plain Thread可以達到要求。

2

調度程序是爲了「永遠」運行。調用「加入」會加入調度程序線程,並僅在線程死亡時退出。

你應該重新考慮你的代碼,你正在嘗試像螺絲刀一樣使用錘子。

+0

,當加入的線程完成所有的事情後,主線程將退出,方式更合理。對於調度程序,我認爲它應該是,但事實並非如此。現在我想要的是它具有時間表,連接功能,可以自己退出而不是永遠退出。 – ywenbo

+1

第 如果您需要在工作後退出,只需睡覺,然後完成工作並退出。 – jmettraux

+0

不合理,不同的工作需要不同的時間完成,這是不可預測的,如何設置睡眠時間,不實際 – ywenbo