2012-08-12 113 views
0

我有一個使用Microsoft Exchange WebServices(EWS)處理服務郵箱中的電子郵件的C#4.0編寫的Windows服務。根據一些條件讀取電子郵件並將一些數據插入到Oracle數據庫中。Windows服務處理時間問題

Windows服務計劃每5分鐘運行一次。我正在使用Quartz.Net API進行調度,並設置了5次觸發器。

我有一個問題。如果我現在開始使用服務,並且正在處理電子郵件,並且需要超過5分鐘,因爲我們已計劃每5分鐘運行一次,會發生什麼情況?

會有兩個進程運行舊的啓動和新的剛剛啓動,由於5分鐘的時間表?

+0

你說的 '兩個過程' 是什麼意思?你有1個服務使用Quartz.Net api運行,對嗎? – devundef 2012-08-12 14:47:46

+0

是的。我的問題是,如果達到5分鐘間隔並且前一個仍在處理中,會發生什麼?它會重新處理相同的電子郵件,還是等待流程完成並開始新的工作 – acadia 2012-08-12 14:50:03

回答

0

石英將同時運行作業觸發器除非作業類實現接口IStatefulJob。這意味着除非你在作業類上實現該接口,否則觸發器將相互重疊。

// implement the interface and all will be fine. 
public class MyJob: IStatefulJob 
{ 
    .... 
} 

來源: http://quartznet.sourceforge.net/apidoc/1.0/html/topic142.html

+0

非常感謝您的幫助 – acadia 2012-08-12 23:22:22