[英]Quartz.NET job configurared to run once daily works the first day but fails to fire on subsequent days
我已經在我的asp.net應用程序中配置了quartz.net,我有一項工作設置為每天凌晨1點運行。 如果我更改job-config.xml文件以使其在2分鍾的時間內運行,則更改將自動進行,而無需重新啟動應用程序池,並且將觸發該作業。 但是,如果我恢復所做的更改以使工作在凌晨1點再次解雇,則似乎沒有解雇。 對我來說,顯而易見的原因是應用程序池或IIS已重新啟動,這將導致我的asp.net應用程序關閉(實際上是關閉了quartz.net,因為它是同一asp的一部分。凈進程),但要測試quartz.net是否仍在運行,而沒有任何iisreset
或應用程序池回收,我再次更改job-config.xml文件以在2分鍾內再次啟動並運行該作業,因此它不會似乎發生了應用程序池回收或IIS重置的情況-我不明白。
我想使該作業在asp.net應用程序下運行,而無需創建其他Windows服務,因此,我們將不勝感激。 以下是我的quartz.net配置文件的摘要。
<job>
<job-detail>
<name>xjob</name>
<group>MyJobs</group>
<description>blah blah</description>
<job-type>yyy.xxx,yyy</job-type>
<volatile>false</volatile>
<durable>true</durable>
<recover>false</recover>
</job-detail>
<trigger>
<cron>
<name>xJobTrigger</name>
<group>MyJobs</group>
<description>blah blah</description>
<job-name>xJob</job-name>
<job-group>MyJobs</job-group>
<cron-expression>0 0 1 * * ?</cron-expression>
</cron>
</trigger>
謝謝
我認為發生了幾件事。 如您所提到的,如果在asp.net下運行調度程序,則該過程可能會被回收,並且您的調度程序在應該運行時可能無法運行。 如果讓工作在某個特定時間運行很重要,那么您需要將Quartz.net設置為服務。
缺少的另一件事是,我認為您正在使用RAM作業,這意味着當調度程序重新啟動時,它將重新調度該作業,因此在您的情況下,直到1時它才會再次觸發。如果調度程序未運行為1時,即使調度程序重新啟動(依此類推),該作業也不會觸發。 如果使用ADO作業存儲,則一旦計划程序再次啟動並且檢測到不點火,至少觸發器將保持不變並且作業將運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.