在 Quartz.NET 中以编程方式编辑作业 CronExpression - 有哪些方法?
CronTrigger 有哪些方法可以修改其 CronExpression?我尝试在 CronExpressionString 中设置它,但这似乎没有更新它,并且我无法将字符串转换为 CronExpression 以在 CronExpression 方法中使用。
what methods are there for a CronTrigger to modify its CronExpression? I've tried to set it in the CronExpressionString but that doesn't seem to update it, and I can't convert my string to a CronExpression to use in the CronExpression method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 GetJobDetail() 将作业加载到局部变量。
然后 UnscheduleJob()
最后,您将创建一个新的 CronTrigger 并调用 ScheduleJob()。
-- 编辑 --
可能会注意到一种更简单的方法是
创建一个新触发器(任何类型)并使用相同的触发器名称和组调用 RescheduleJob()。
You would load the job to a local variable using GetJobDetail().
Then UnscheduleJob()
Finally, you'd create a new CronTrigger and call ScheduleJob().
-- Edit --
It has come to may attention that an easier way is
Create a new trigger (of any type) and call RescheduleJob() using the same trigger name and group.
实际上没有办法通过 API 修改触发器的 cron 表达式。执行您想要的操作的“正常”方法是使用新的 cron 表达式创建一个新触发器,然后使用新触发器重新安排作业,或者删除并使用新触发器创建作业。
如果您使用数据库作为作业存储,则 cron 表达式存储在 QRTZ_CRON_TRIGGERS 表的 CRON_EXPRESSION 列中。直接在数据库中更改它可能不是最好的选择,但您可以尝试一下,看看会发生什么。
There really is no way to modify a trigger's cron expression through the API. The "normal" way to do what you want is to create a new trigger with the new cron expression and then either reschedule the job with the new trigger or delete and create the job with the new trigger.
If you're using a database as your job store, the cron expression is stored in the CRON_EXPRESSION column of the QRTZ_CRON_TRIGGERS table. Changing it directly in the database is probably not the best option but you could give it a try and see what happens.