The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

設定「排定的工作」需注意工作執行的時間

我之前寫過一篇【排定的工作設定週期最短只有每日嗎?】文章,當時我們就是寫了一支需要「每分鐘」執行一次的程式,執行了一年多沒啥問題出現過,但最近卻出問題了,程式竟然自動停止執行,導致服務無法正常運作,研究後才發現原來該程式從早上執行完後到現在一直在執行,沒有停止過,所以才導致排程的工作就此停擺。

今天經研究後發現,原來是我們的程式在建立 TCP/IP 連線時,遠端電腦可能當時發生了些異常行為,導致連上後沒有任何回應,以致於我們的程式就一直在等待伺服器回應,一直等...一直等...  = =''

發現問題的根源後,立即想到有三種解決方法:

1. 利用 Windows 工作管理員 手動將執行中的程式殺掉,接著排程就會繼續進行了!

2. 修改程式碼,加入 Timeout 功能。我直接利用前幾天介紹的執行緒幫我完成這個目的:

static void Main(string[] args)
{
	Thread t = new Thread(new ThreadStart(DoWorks));
	t.Start();
	t.Join(1000 * 60 * 5);
}

3. 修改 排定的工作 中的設定,設定 5 分鐘後停止排定的工作 ( 這也是最簡單的方式 )

改 排定的工作 中的設定,設定 5 分鐘後停止排定的工作