企业如何通过vue小程序开发满足高效运营与合规性需求
769
2023-03-04
Quartz.Net实现原理及使用方法详解
调度器(scheduler)必须在实例化之后才能使用(谁能想到呢?)。你可以通过一个ISchedulerFactory接口的实例来实现它。
实例化调度器(scheduler)后,可以启动、处于待机模式或者关闭。注意,一个调度器(scheduler)一旦被关闭,它必须被重新实例化http://才可以再次启动。直到调度器(scheduler)启动,触发器(Triggers)才会被触发(执行任务(job)),但处于暂停模式的触发器(trigger)不会被触发。
这里有一段简单的代码,实例化了一个调度器(scheduler)并启动了它,还调度了一个任务(job)去执行。
使用 Quartz.NET
// construct a scheduler factory 构造一个scheduler工厂
NameValueCollection props = new NameValueCollection
{
gRZpmclK { "quartz.serializer.type", "binary" }
};
StdSchedulerFactory factory = new StdSchedulerFactory(props);
// get a scheduler 获取一个scheduler
IScheduler sched = await schedFact.GetScheduler();
await sched.Start();
// define the job and tie it to our HelloJob class 定义一个job,与HelloJob类关联
IJobDetail job = JobBuilder.Create
.WithIdentity("myJob", "group1")
.Build();
// Trigger the job to run now, and then every 40 seconds 触发任务马上执行,并且每40秒执行一次
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("myTrigger", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(40)
.RepeatForever())
.Build();
await sched.ScheduleJob(job, trigger);
如你所见,使用 Quartz.NET 非常简单。之后我们会给出一个关于任务(Jobs)和触发器(Triggers)的快速概览,方便你更好地理解这个例子。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~