0

我正在尝试通过JobChainingJobListener. 我首先创建了几个持久作业(同时将 ADO JobStore 与 SQL Server 一起使用),这部分运行良好 - 这些作业在 Quartz.NET 重新启动时可见。

当我将作业与Scheduler.ListenerManager.AddJobListener(listener, matchers)侦听器正确触发时,它的定义不能在数据库中持久化。每次服务器重新启动后,我必须再次定义所有侦听器。

查看 DB 表,没有侦听器表,代码也不ListenerManagerImpl包含任何侦听器持久性的提示。

我计划添加侦听器持久性并在服务器重新启动时重新加载全局侦听器字典。在我这样做之前,我想知道是否有任何原因导致该项目尚未这样做?考虑到 Quartz.NET 的成熟程度,可能已经有人遇到过这个问题,所以我似乎遗漏了一些东西。

任何人都可以指出实现监听器持久性的任何陷阱吗?

4

1 回答 1

0

从 Quartz 的角度来看,监听器只是一个配置问题。就像您为库配置作业存储类型或其他设置一样。通常侦听器是无状态的,因此不需要持久性服务,这与需要在调用和可能的作业处理节点之间保持状态的触发器和作业不同。

如果您有完善的配置管理计划,这应该不是问题。只需像处理设置的其他方面一样处理侦听器配置。如果您的侦听器中有状态管理,需要在重新启动之间进行存储,那就是另一回事了。那么你自然需要自定义持久性。

于 2013-11-12T06:41:56.143 回答