为什么JobListeners在Quartz.NET中不耐用?

时间:2013-11-11 17:10:51

标签: quartz.net

我正试图通过JobChainingJobListener在Quartz.NET中连接一些工作。我首先创建了一些持久的作业(当使用带有SQL Server的ADO JobStore时),这部分工作得很好 - 这些作业在Quartz.NET重启时可见。

当我使用Scheduler.ListenerManager.AddJobListener(listener, matchers)链接我的作业时,侦听器正确触发,但其定义无法在数据库中变得持久。每次重启服务器后,我都要再次定义所有监听器。

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

我计划在服务器重启时添加侦听器持久性并重新加载全局侦听器字典。在我这样做之前,我想知道为什么项目还没有这样做的原因?考虑到Quartz.NET有多成熟,有人会遇到这个问题,所以我似乎错过了一些东西。

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

1 个答案:

答案 0 :(得分:0)

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

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