HTML5技术

Quartz.net开源作业调度框架使用详解 - 张龙豪(2)

字号+ 作者:H5之家 来源:H5之家 2015-11-05 14:23 我要评论( )

任务计划 IScheduler scheduler = null ; public static IScheduler GetScheduler(){ if (scheduler != null ){ return scheduler;} else {ISchedulerFactory schedf = new StdSchedulerFactory();IScheduler sched

任务计划 IScheduler scheduler = null; public static IScheduler GetScheduler() { if (scheduler != null) { return scheduler; } else { ISchedulerFactory schedf = new StdSchedulerFactory(); IScheduler sched = schedf.GetScheduler(); return sched; } } 添加任务计划 AddScheduleJob(WJ_ScheduleEntity m) { try { if (m != null) { if (m.StarRunTime == null) { m.StarRunTime = DateTime.Now; } DateTimeOffset starRunTime = DateBuilder.NextGivenSecondDate(m.StarRunTime, 1); if (m.EndRunTime == null) { m.EndRunTime = DateTime.MaxValue.AddDays(-1); } DateTimeOffset endRunTime = DateBuilder.NextGivenSecondDate(m.EndRunTime, 1); scheduler = GetScheduler(); IJobDetail job = JobBuilder.Create<HttpJob>() .WithIdentity(m.JobName, m.JobGroup) .Build(); ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create() .StartAt(starRunTime) .EndAt(endRunTime) .WithIdentity(m.JobName, m.JobGroup) .WithCronSchedule(m.CronStr) .Build(); scheduler.ScheduleJob(job, trigger); scheduler.Start(); StopScheduleJob(m.JobGroup, m.JobName); return true; } return false; } catch (Exception ex) { ; } }

Note:1.这里作业调度执行的函数如下。2.上面的WithIdentity(m.JobName, m.JobGroup) ,是给作业调度加入组,和名称,方便我们针对哪一个作业计划,进行启动停止等操作。

 

public class HttpJob : IJob { public void Execute(IJobExecutionContext context) { ThreadPool.QueueUserWorkItem(delegate(Object o) { try { sm = new WJ_ScheduleManage().GetScheduleModel(new WJ_ScheduleEntity() { JobGroup = context.JobDetail.Key.Group, JobName = context.JobDetail.Key.Name }); new WJ_ScheduleManage().UpdateScheduleRunStatus(new WJ_ScheduleEntity() { JobGroup = context.JobDetail.Key.Group, JobName = context.JobDetail.Key.Name,RunStatus=(int)ADJ.Job.Entity.EnumType.JobRunStatus.执行中 }); ESBRequest req = new ESBRequest(sm.ServiceCode, sm.ApiCode); DataResult result = req.Request(); new WJ_ScheduleManage().UpdateScheduleRunStatus(new WJ_ScheduleEntity() { JobGroup = context.JobDetail.Key.Group, JobName = context.JobDetail.Key.Name, RunStatus = (int)ADJ.Job.Entity.EnumType.JobRunStatus.待运行 }); if (result.Code == 1) { #region 加入执行明细 WJ_ScheduleDetailsEntity dm = new WJ_ScheduleDetailsEntity(); dm.ActionDescribe = + result.Message ; dm.ActionStep = (int)ADJ.Job.Entity.EnumType.JobStep.执行完成; dm.CreateTime = DateTime.Now; dm.JobGroup = context.JobDetail.Key.Group; dm.JobName = context.JobDetail.Key.Name; dm.IsSuccess = 1; new WJ_ScheduleManage().AddScheduleDetails(dm); #endregion } else { #region 加入执行明细 WJ_ScheduleDetailsEntity dm = new WJ_ScheduleDetailsEntity(); dm.ActionDescribe = +result.Message; dm.ActionStep = (int)ADJ.Job.Entity.EnumType.JobStep.执行任务计划中; dm.CreateTime = DateTime.Now; dm.JobGroup = context.JobDetail.Key.Group; dm.JobName = context.JobDetail.Key.Name; dm.IsSuccess = 0; new WJ_ScheduleManage().AddScheduleDetails(dm); #endregion } new WJ_ScheduleManage().UpdateScheduleNextTime(new WJ_ScheduleEntity() { JobGroup = context.JobDetail.Key.Group, JobName = context.JobDetail.Key.Name, NextTime = context.NextFireTimeUtc.Value.DateTime.AddHours(8) }); } catch (Exception ex) { #region 加入执行明细 WJ_ScheduleDetailsEntity dm = new WJ_ScheduleDetailsEntity(); dm.ActionDescribe = + ex.Message + + ex.StackTrace; dm.ActionStep = (int)ADJ.Job.Entity.EnumType.JobStep.执行任务计划中; dm.CreateTime = DateTime.Now; dm.JobGroup = context.JobDetail.Key.Group; dm.JobName = context.JobDetail.Key.Name; dm.IsSuccess = 0; new WJ_ScheduleManage().AddScheduleDetails(dm); #endregion DoApplication.WriteLogFile(ex.Message + + ex.StackTrace); } }); } }

View Code

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • C# 超高速高性能写日志 代码开源 - Emrys5

    C# 超高速高性能写日志 代码开源 - Emrys5

    2017-04-12 12:10

  • 开源 免费使用 打包下载自行部署 :升讯威 周报系统 - sheng.chao

    开源 免费使用 打包下载自行部署 :升讯威 周报系统 - sheng.chao

    2017-03-28 13:00

  • 任务调度之持久化(基于Quartz.net) - 蓝建荣

    任务调度之持久化(基于Quartz.net) - 蓝建荣

    2017-03-28 12:03

  • 期待微软平台即服务技术Service Fabric 开源 - 张善友

    期待微软平台即服务技术Service Fabric 开源 - 张善友

    2017-03-27 18:00

网友点评
t