Quartz.NET学习系列(五)--- 失败恢复和异常处理
来源:互联网 发布:python是开源的吗 编辑:程序博客网 时间:2024/06/17 19:21
Quartz.NET为了提高程序的容错性,加入了失败恢复和异常处理的机制。
失败恢复
失败恢复是Quartz.NET触发器的方法,用于指示失败之后的操作
ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create() .WithIdentity("trigger2", "group1") .StartAt(startTime) .WithSimpleSchedule(x => x .WithIntervalInSeconds(3) .RepeatForever() .WithMisfireHandlingInstructionNowWithExistingCount()) //设置失败后操作还有的操作有
异常处理
JobExecutionException 是主要捕获错误时操作错误的类,其中RefireImmediately=true表示出错后马上恢复执行,UnscheduleAllTriggers=true表示出错后暂停所有触发器。
具体代码如下(出错之后马上恢复):
public class BadJob1 : IJob{private ILog log = LogManager.GetLogger(typeof(BadJob1));public virtual void Execute(IJobExecutionContext context){JobKey jobKey = context.JobDetail.Key; JobDataMap dataMap = context.JobDetail.JobDataMap; int denominator = dataMap.GetInt("denominator"); log.InfoFormat("{0} 被除数 {1}", "---" + jobKey + " 执行时间 " + DateTime.Now, denominator);try{ int calculation = 4815 / denominator;}catch (Exception e){log.Info("--- Error 错误");JobExecutionException e2 = new JobExecutionException(e); dataMap.Put("denominator", "1");e2.RefireImmediately = true;throw e2;}log.InfoFormat("---{0} 执行完成 {1}", jobKey, DateTime.Now.ToString());}}
任务和触发器的定义以及计划的执行和上篇类似,此处就不在贴代码
0 0
- Quartz.NET学习系列(五)--- 失败恢复和异常处理
- Quartz.NET学习系列
- 记Quartz.Net异常处理
- Quartz.NET学习系列(十二)--- Quartz.NET集群
- PHP学习笔记(五)错误和异常处理
- Quartz.NET学习系列(一)--- 快速入门
- Quartz.NET学习系列(二)--- 简单触发器
- Quartz.NET学习系列(三)--- Cron触发器
- Quartz.NET学习系列(四)--- 数据注入
- Quartz.NET学习系列(六)--- 中断任务
- Quartz.NET学习系列(八)--- 任务监听器
- SpringBoot系列<五>全局异常处理
- PHP学习系列之错误处理和异常捕获
- Quartz-异常处理
- Json.Net学习 异常处理
- 工作流建模:失败和异常处理表示
- SpringMVC学习(五)--异常处理
- Quartz.NET学习系列(十一)--- Quartz.NET持久化及客户端服务器模式
- Flume timestamp拦截器
- nginx指令收集
- FragmentTabHost 阻止切换
- hibernate是什么
- CentOS---tftp(安装、配置、使用)
- Quartz.NET学习系列(五)--- 失败恢复和异常处理
- 机房收费系统(个人重构)——外观模式
- 先手写个angular吧,今天刚接触,可能不太好写
- android Dependencies ,Private Libraries ,Referenced Libraries区别
- UI缓冲界面
- I/O流理解
- Linux下安装opencv-python
- heap与stack的差
- spring自动注入入门