使用Quartz.NET cron-like表达式
Quartz.NET 最新源码请到官网下载查看
Quartz.NET是一个开源的作业调度框架,它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,cron-like表达式等。
本实例是在Web应用程序中进行调度,无需在Global.asax.cs写任何代码即可完成作业调度设置
// 获取一个任务调度器 IScheduler scheduler = SchedulerManager.GetScheduler(); // 创建一个工作 string JobName="";//可以任意设置 Type type = JobClass.jobClass("IJobTime"); //Type type = JobClassReturn.jobClassReturn("IJobTime");只不过我对任务执行语句做了封装 //public class IJobTime: IJob ////public void Execute(JobExecutionContext context) // { //可以在这里面写执行语句 // } //} JobDetail job = new JobDetail(JobName, JobClass.DEFAULT_GROUP, type); // 创建一个触发器 //这里我直接把取得的数据插入了数据库,由于上传不便,所以就直接去掉了 ,不过不影响调度器的运行的 CronTrigger trigger = new CronTrigger(); trigger.Name = Guid.NewGuid().ToString(); trigger.JobName = JobName; trigger.JobGroup = JobClass.DEFAULT_GROUP; trigger.Group = JobClass.DEFAULT_Trigger_GROUP; //trigger.CronExpression = new CronExpression(Cron); trigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow); //不能将DateTime.UtcNow写成DateTime.Now,否则触发不了 trigger.EndTimeUtc = endTime; trigger.CronExpressionString = "0/5 * * * * ?";//每隔5秒执行一次 //scheduler.AddJob(job, true); //将任务与触发器加入调度器 scheduler.ScheduleJob(job,trigger); //scheduler.ScheduleJob(trigger) //判断调度器是否启用 if (!scheduler.IsStarted) { scheduler.Start(); }
已经完成,Quartz.NET会按照cron-like表达式设置的时间间隔去执行作业调度语句,而且无需在Global文件中做任何设置哦
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。