[英]Quartz.Net 2.0.1 Trigger
我有一個Web應用程序,我試圖設置一個觸發器,使其在應用程序啟動時啟動,然后每5分鍾觸發一次
一切都在Global.asax中-似乎是放置它的正確位置:
public class Global : HttpApplication
{
public static StdSchedulerFactory SchedulerFactory;
public static IScheduler Scheduler;
public static ITrigger ImageTrigger;
protected void Application_Start(object sender, EventArgs e)
{
SchedulerFactory = new StdSchedulerFactory();
Scheduler = SchedulerFactory.GetScheduler();
Scheduler.Start();
ImageTrigger = TriggerBuilder.Create()
.WithIdentity("ImageTrigger", "Group1")
.StartNow()
.WithSimpleSchedule(x => x.RepeatForever().WithIntervalInMinutes(5))
.Build();
var imageJob = JobBuilder.Create<DownloadImages>()
.WithIdentity("DownloadImages" , "Group1")
.Build();
Scheduler.ScheduleJob(imageJob, ImageTrigger);
}
...
}
因此,我假設有一個簡單的計划表使用.WithIntervalInMiniutes(),導致該作業被調用,或者該作業有很大錯誤?
PS我也試過了:
AlertTrigger = TriggerBuilder.Create()
.WithIdentity("AlertTrigger", "Group1")
.StartNow()
.WithCronSchedule("0 0/1 * * * ?")
.Build();
隨后大喊大叫的電腦!
在此先感謝您的幫助。
馬特
我已經嘗試過您的代碼,並且可以正常工作。
我不認為網絡服務是運行計划作業的最佳選擇,因為它是自然的。
我建議您閱讀ASP.NET應用程序生命周期 。
Application_Start
當請求ASP.NET應用程序中的第一個資源(例如頁面)時調用。 在應用程序的生命周期中,僅一次調用Application_Start方法。 您可以使用此方法執行啟動任務,例如將數據加載到緩存中並初始化靜態值。 您應該在應用程序啟動期間僅設置靜態數據。 不要設置任何實例數據,因為它僅對所創建的HttpApplication類的第一個實例可用。
IIS在IIS中運行的ASP.NET輔助進程經過一定時間的不活動后將被關閉並回收 。 但是,您可以更改此行為。
可以在這里閱讀另一篇有趣的文章。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.