[英]scheduling web services in Quartz.Net - windows service or singleton
[英]Scheduling a windows service with quartz .NET
我有一個自定義的Windows服務,我想使用Quartz .NET安排服務運行的時間。 現在,我了解了quartz.NET的基礎知識,但是我不確定如何將其連接到Windows服務。因此,可以說我有想每小時運行的Service.exe。 如何通過Quartz實現此功能? 我知道這是一個模糊的問題,但實際上沒有其他方法可以提出這個問題。
提前致謝。
您需要設置作業和觸發器。 作業由觸發器調用。( http://quartznet.sourceforge.net/tutorial/lesson_3.html )。 這是每小時運行一個示例。
// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// construct job info
JobDetail jobDetail = new JobDetail("myJob", null, typeof(DumbJob));
// fire every hour
Trigger trigger = TriggerUtils.MakeHourlyTrigger();
// start on the next even hour
trigger.StartTime = TriggerUtils.GetEvenHourDate(DateTime.UtcNow);
trigger.Name = "myTrigger";
sched.ScheduleJob(jobDetail, trigger);
這是您的調用Service.exe的類。
public class DumbJob : IJob
{
public void Execute(JobExecutionContext context)
{
string instName = context.JobDetail.Name;
string instGroup = context.JobDetail.Group;
// Note the difference from the previous example
JobDataMap dataMap = context.MergedJobDataMap;
string jobSays = dataMap.GetString("jobSays");
float myFloatValue = dataMap.GetFloat("myFloatValue");
ArrayList state = (ArrayList) dataMap.Get("myStateData");
state.Add(DateTime.UtcNow);
Console.WriteLine("Instance {0} of DumbJob says: {1}", instName, jobSays);
}
}
您也可以只在Windows服務中啟動線程,跟蹤上次觸發該exe的時間,然后再重置。 Quartz要簡單一些,並且可以完成相同的任務。 但是,您的問題是針對石英的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.