您的位置:首页 > 其它

使用Quartz.NET cron-like表达式

2015-02-12 18:36 69 查看
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文件中做任何设置哦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: