纠正第一篇文章的一个错误代码。

下面是错误代码,这样并不能得知系统中是否已经存在该JobId

//实例化一个作业Key对象,用于获取作业对象或判断是否存在作业时使用。
JobKey jobKey = new JobKey(identity); //通过作业Ke对象 获取已经添加过同一个作业,(如果没有为NULL)
IJobDetail job = scheduler.GetJobDetail(jobKey); //检查调度中是否存在该作业,存在并且参数有变化就删除作业。
if (scheduler.CheckExists(jobKey) && job.JobDataMap["cron"].ToString() != cron)
{
scheduler.DeleteJob(jobKey);
}

正确获取JobKey和IJobDetail对象的方法如下

这种方法使用Job的GroupName组名进行匹配查找,先将该组所有的JobKey返回再进行循环查找,

什么?你没有设置GroupName?

如果没有设置GroupName则GroupName为DEFAULT

当然也可以用GroupMatcher<JobKey>的其它方法进行匹配如

AnyGroup();
GroupContains(string compareTo);
GroupStartsWith(string compareTo);
GroupEndsWith(string compareTo);
GroupEquals(string compareTo);

//首先需要根据组名来查找到JobKey的ISet集合。
GroupMatcher<JobKey> matcher = GroupMatcher<JobKey>.GroupEquals(groupName); //注意:这里并不是System.Collection中的ISet<T>。
Quartz.Collection.ISet<JobKey> keys = scheduler.GetJobKeys(matcher); //使用枚举对象循环查找
var en = keys.GetEnumerator(); while (en.MoveNext())
{
string rowid = en.Current.Name.Replace("reportTime", "");
if (dt.Select("id='" + rowid + "'").Length == )
{
LogHelper.AddLog("定时模块", "检测该计划配置信息已不存在,将删除定时计算任务。", ""); scheduler.DeleteJob(en.Current);
}
}

开源作业调度框架 - Quartz.NET - 实战使用2的更多相关文章

  1. 开源作业调度框架 - Quartz.NET - 实战使用1

    简介: 第一步:下载Quartz.NET 下载Quartz.NET只需要打开网址选择适宜的版本进行下载解压缩即可. 目前最新版本是2.3.3,压缩包为6MB,不过鉴于国内网速.我还是加一下博客园的下载 ...

  2. .NET开源作业调度框架(Quartz.NET和FluentScheduler)实战项目演练

    一.课程介绍 明人不说暗话,跟着阿笨一起玩NET .本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享 ...

  3. .Net平台开源作业调度框架Quartz.Net

    Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...

  4. (转).Net平台开源作业调度框架Quartz.Net

    Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...

  5. 开源作业调度框架 - Quartz.NET - ASP.NET部署

    经过这次使用实践,感觉Quartz.NET使用起来方便快捷 但是在发布部署时我们会遇到一个问题 那就是当Web应用程序经常没有按照预计的时间去执行. 那问题出在哪里了呢? 根据以往的经验很容易就可以找 ...

  6. 开源作业调度框架 - Quartz.NET - Cron表达式测试

    昨天简单写了一下如何使用Quzrtz.NET. 那么问题来了,我设置了Cron表达式之后如何知道是表达式是否按照预期的时间执行了呢? 我找到了些Cron表达式工具生成了表达式,确发现它们基本上没有进行 ...

  7. Quartz.NET开源作业调度框架系列

    Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...

  8. Quartz.NET开源作业调度框架系列(三):IJobExecutionContext 参数传递

    前面写了关于Quartz.NET开源作业调度框架的入门和Cron Trigger , 这次继续这个系列, 这次想讨论一下Quartz.NET中的Job如何通过执行上下文(Execution Conte ...

  9. Quartz.NET开源作业调度框架系列(一):快速入门step by step

    Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...

随机推荐

  1. mongodb之oplog

    1.查看master上当前的oplog状态: >rs.printReplicationInfo() configured oplog size: 5000MBlog length start t ...

  2. 【转】CSS3 Box-sizing

    box-sizing是CSS3的box属性之一.一说到CSS的盒模型(Box model)我想很多人都会比较烦,特别是对于新手,然而这个Box model又是我们CSS运用中比较重要的一个属性.那么C ...

  3. 【转载】Java8 HashMap之tableSizeFor

    Java8对许多内置的容器进行了优化与拓展,其中对HashMap的改变尤其大.之后将进行总结. 最近在看HashMap的源码时,发现了里面好多很不错的算法,相比Java7从性能上提高了许多.其中tab ...

  4. vue-cli + element-ui + webpack 新建项目

    1.进入项目目录 2.全局安装vue-cli 输入命令:npm install vue-cli -g 若报错:ENOENT: no such file or directory, access.... ...

  5. [转]DevOps实战:百度持续交付体系与最佳实践大解密!

    本文转自:http://dbaplus.cn/news-21-471-1.html “互联网+”时代,软件产品要想满足快速增长的用户需求,高效.快速的迭代转型必不可少,面对时刻发生改变的互联网及业务模 ...

  6. WPF TreeView 选择事件执行两次,获取TreeView的父节点的解决方法

    1.TreeView选择事件执行两次 Very often, we need to execute some code in SelectedItemChanged depending on the ...

  7. MFC框架之线程局部存储

    线程局部存储中用到的API基础:(TLS:Thread Local Storage) 1.在主线程中申请索引 g_index=::TlsAlloc(); 2.在线程函数中使用索引 存值:::TlsSe ...

  8. Windows 忘记登录密码解决方法 【摘抄于百度】

    一.简单的方法: 开机启动windows,进入欢迎界面后,会出现输入用户名密码提示框,这时候,同时按住Ctrl+Alt+Delete,会跳出一个账号窗口,输入用户名:administer,按回车即可. ...

  9. Linux进程间的通信方式和原理

    进程的概念 进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放.可以认为进程是一个程序的一次执行过程. 进程通信的概念 进程用户空间是 ...

  10. mybatis将传入0识别成空字符串

    mybatis将传入的Integer类型的0被识别成空字符串,网上的解决办法: <if test="status != null and status != '' or status ...