Quartz.net动态修改任务执行周期

Illusion_1202 2019-03-05 08:53:01
需求是根据配置项动态修改Quartz任务,找了很多资料都是Java的(例如https://blog.csdn.net/u010377605/article/details/77801896),和.net方法字段都不一样
目前我的代码大概是这样(参照了https://blog.csdn.net/qq_18145031/article/details/81382280)
CronTriggerImpl trigger = new CronTriggerImpl(triggerName, triggerGroupName);
JobDetailImpl jobDetail = new JobDetailImpl(jobDetailName, jobDetailGroupName, type);

//ITrigger trigger = (ITrigger)sched.GetTrigger(new TriggerKey(triggerName, triggerGroupName));
//IJobDetail jobDetail = (IJobDetail)sched.GetJobDetail(new JobKey(jobDetailName, jobDetailGroupName));
if (trigger != null)
{

CronTriggerImpl ct = (CronTriggerImpl)trigger;
// 移除当前进程的Job
bool flag= sched.DeleteJob(jobDetail.Key);
// 修改Trigger
ct.CronExpressionString = time;
Console.WriteLine("CronTrigger getName " + ct.JobName);
// 重新调度jobDetail
sched.ScheduleJob(jobDetail, ct);
}
运行结果是新启动了一个同名任务,而且周期也不是传入的Cron表达式那样,断点看了下移除任务返回的flag是false,应该是构造trigger 和jobDetail 没构造对,这是新增的写法,按需求应该是获取现有,但是找了很久也看了原文还是没找到,求助!(https://quartznet.sourceforge.io/apidoc/3.0/html/)
...全文
1523 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我问一下解决没都给我删啊,管理员你想啥呢? 楼主解决了没,能否分享一下,网上找了好久没找到方案. 我用的还是依赖注入,资料更少了 打算修改完xml配置规则后重启应该能生效
Illusion_1202 2019-03-11
  • 打赏
  • 举报
回复
顶一下,不要沉
xuan.ye 2019-03-06
  • 打赏
  • 举报
回复
首先实例属性主要字段: properties["quartz.scheduler.instanceId"] = "此处可以给mac地址保证唯一" ; properties["quartz.scheduler.instanceName"] = "此处可以给mac地址保证唯一" ; 一般重新构造的方法是: 1、IScheduler 做shutDown处理 2、新corn 3、然后重新 Start() 关于cron表达式: 在线生成地址: http://www.bejson.com/othertools/cron/ 更多详情见官网: https://www.quartz-scheduler.net/documentation/index.html

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧