是否可以在运行Quartz时添加或删除作业和触发器?净作业调度器服务

本文关键字:触发器 作业 服务 作业调度 删除 运行 Quartz 添加 是否 | 更新日期: 2023-09-27 18:09:43

是否可以在运行中的Quartz中添加或删除作业和触发器?网络调度器服务?

是否可以在运行Quartz时添加或删除作业和触发器?净作业调度器服务

所以我有一个POC(概念证明)是连接到Sql Server。

我有两个控制台应用:

QuartzPOC.ConsoleApp.PopulateJobs.exe
and
QuartzPOC.ConsoleApp.RunJobs.exe

我跑QuartzPOC.ConsoleApp.RunJobs.exe

使用空(QuartzDB)数据库。显然,在运行此命令时没有作业在运行。

当"QuartzPOC.ConsoleApp.RunJobs.exe"运行......时然后我运行

QuartzPOC.ConsoleApp.PopulateJobs.exe

只在数据库中放置作业。注意:我不调用"isscheduler"。以"QuartzPOC.ConsoleApp.PopulateJobs.exe"开始

"QuartzPOC.ConsoleApp.PopulateJobs.exe"结束,因此不再运行。

我等待着。(请记住"QuartzPOC.ConsoleApp.RunJobs.exe"仍在运行)。

Jobs started running.

神奇的"call"似乎是这样的:

exec sp_executesql N'SELECT TOP 1  TRIGGER_NAME, TRIGGER_GROUP, NEXT_FIRE_TIME, PRIORITY FROM QRTZ_TRIGGERS WHERE SCHED_NAME = ''MySchedulerName'' AND TRIGGER_STATE = @state AND NEXT_FIRE_TIME <= @noLaterThan AND (MISFIRE_INSTR = -1 OR (MISFIRE_INSTR <> -1 AND NEXT_FIRE_TIME >= @noEarlierThan)) ORDER BY NEXT_FIRE_TIME ASC, PRIORITY DESC',N'@state nvarchar(7),@noLaterThan bigint,@noEarlierThan bigint',@state=N'WAITING',@noLaterThan=235333689932806505,@noEarlierThan=235333689282806505

因此,如果您将作业(通过c#代码)填充到Quartz。网库)……作为另一个进程运行的调度程序将拾取db更改