我有這樣的窗口服務項目,該項目是OnStart
方法看起來像這樣石英作業計劃程序在Windows服務
protect void OnStart(string[] args)
{
IScheduler someScheduler = _schedFactory.GetScheduler(); // _schedFactory is a priva field of the service class
IJobDetail someJob = JobBuilder.Create<SomeJob>()
.WithIdentity("SomeJob")
.Build();
ITrigger someTrigger = TriggerBuilder.Create()
.StartAt(new DateTimeOffset(DateTime.UtcNow.AddSeconds(30)))
.WithSimpleSchedule(schedule => scheduler.WithIntervalInMinutes(3).RepeatForever())
.Build();
someScheduler.SchedulerJob(someJob, someTrigger);
someScheduler.Start();
}
我使用Visual Studio開發人員命令提示符來安裝服務。該命令是installutil.exe
。現在當服務安裝時,我去任務管理器並啓動它。在OnStart
方法的頂部有Thread.Sleep(10000)
,所以我可以設法通過調試器附加到服務。所以當它連接時,我會通過代碼,沒有什麼特別的事情發生,我的意思是沒有異常發生。我甚至看到了工作應該執行的時間和正確的時間。當我坐在調試模式並等待作業的Execute
方法執行時,它不會。我的意思是當視覺工作室正在加載符號時,但作業本身不會被執行。可能是什麼問題?還有一件事是我在這個OnStart
方法中創建兩個工作。該代碼是相同的。它能成爲問題的原因嗎?有時第二份工作有時候不會執行。我的意思是如果它每3分鐘執行一次就執行一次,但如果它在第一個預定時間沒有執行,它就不會執行。