可以重新使用JobDetail记录吗?
有没有办法在JobDetail记录上创建一个新的触发器,该记录在数据库中,但不在内存中? 具体用途:我计划每天使用cron触发器运行作业。 有时需要使用相同的参数重新运行特定日期的工作。 我想使用相同的JobDetail创建一个新的简单触发器,因为这是存储参数的地方。 Reschedule()不起作用,因为它删除了现有的触发器。 那可能吗?
在Quartz.net中,我必须做一点不同的事情:
Trigger trigger = new SimpleTrigger(triggerName, triggerGroup, newDateTime); trigger.JobName = jobName; trigger.GroupName = jobGroup; Scheduler.ScheduleJob(trigger);
那很有效。
是的你可以。
我要做的是从数据库中获取作业:
var myJob = Scheduler.GetJobDetail(jobName, groupName);
并使用该function(可能你已经使用过)
Scheduler.ScheduleJob(JobDetail jobDetail, Trigger trigger);
通过你的新触发器。 您不需要做太多工作,因为运行时将在几秒钟后从数据库中获取新的触发器并运行它。
UPDATE
有两种方法可以使用Quartz.net添加触发器
1)您可以添加作业然后触发:
Scheduler.AddJob(jobToSchedule, true); Scheduler.ScheduleJob(triggerToSchedule);
2)您可以安排同时添加作业的触发器:
Scheduler.ScheduleJob(jobToSchedule, triggerToSchedule);
如果您尝试以这种方式添加作业和触发器:
Scheduler.AddJob(jobToSchedule, true); Scheduler.ScheduleJob(jobToSchedule, triggerToSchedule);
你得到一个例外 ,警告你已经存在的工作。
我建议你在进行任何测试之前清理数据库,因为你可能有一些待处理的工作。 你可以在这里找到一个简单的例程来清理它:
// unschedule jobs string[] groups = Scheduler.TriggerGroupNames; for (int i = 0; i < groups.Length; i++) { string[] names = Scheduler.GetTriggerNames(groups[i]); for (int j = 0; j < names.Length; j++) { Scheduler.UnscheduleJob(names[j], groups[i]); } } // delete jobs groups = Scheduler.JobGroupNames; for (int i = 0; i < groups.Length; i++) { string[] names = Scheduler.GetJobNames(groups[i]); for (int j = 0; j < names.Length; j++) { Scheduler.DeleteJob(names[j], groups[i]); } }
如果您需要删除Quartz.Net 2.0中的所有作业/触发器 – 这将为您完成:
var groups = _scheduler.GetJobGroupNames().ToList(); foreach (var group in groups) { var jobKeys = _scheduler.GetJobKeys(GroupMatcher.GroupEquals(group)).ToList(); foreach (var jobKey in jobKeys) { _scheduler.DeleteJob(jobKey); } }
对于QuartzNet , Scheduler.GetJobDetail(jobName, groupName)
不可用。 而是使用:
ISchedulerFactory schedFact = new StdSchedulerFactory(); IScheduler sched = schedFact.GetScheduler(); sched.Start(); sched.GetJobDetail(new JobKey("job1", "group1"));
附加参考: GetJobDetail方法
上述就是C#学习教程:可以重新使用JobDetail记录吗?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/952875.html