gpt4 book ai didi

c#-4.0 - Quartz.NET 运行作业 self 重新调度?

转载 作者:行者123 更新时间:2023-12-04 22:46:11 26 4
gpt4 key购买 nike

我已经完全以编程方式创建了一个 Quartz.NET 作业(没有配置文件等)。它按计划正常运行。作业使用 cron 字符串初始化,每 5 分钟运行一次。我想让工作根据环境更改自己的时间表(例如,随着时间的推移会发生错误,因此 cron 应更改为 30 分钟)。

我正在尝试确定在

protected override void ExecuteInternal( IJobExecutionContext context )

方法,所以工作“改变自己”。我是否在 context.Scheduler 属性中设置了一些东西?我是否必须去调度程序本身并终止作业并重新创建它(虽然听起来对我来说有点沉重)?

感谢所有的想法,谢谢。

最佳答案

虽然我没有使用过 Quartz.NET,但我在 Java 项目中使用过 Quartz,我认为它们是相似的。我已经实现了类似于您所描述的解决方案。在 executeInteral 方法中,您可以访问作业执行上下文。基本上它涉及创建一个新触发器,然后重新安排作业 (rescheduleJob)。因此,当条件出现时,您会执行以下操作:

protected void ExecuteInternal( IJobExecutionContext context ) {
// ... some code
if (the_condition) {
// figure out startTime
// figure out endTime
// figure out repeat time
// figoure out repeatInterval
Trigger trigger = new SimpleTrigger("OurNewTrigger","GROUP_NAME", context.getJobDetail().getName(),context.getJobDetail().getGroup(), startTime, endTime,repeatTime,repeatInterval);
context.getScheduler().rescheduleJob("OurNewTrigger","GROUP_NAME",trigger);
}
// ... some more code
}

沿着这些路线。希望这可以帮助。

关于c#-4.0 - Quartz.NET 运行作业 self 重新调度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24655776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com