【发布时间】:2019-03-20 11:51:54
【问题描述】:
在我的 spring boot 应用程序中使用了quartz starter。产生的所有作业都在运行时添加到数据库中。数据库使用不同的服务,但作业只能处理使用作业填充数据库的服务。
启动我需要的任何服务,保证只有该服务生成的作业才会添加到石英作业上下文中。我们可以通过指定的组来检测这些作业。
问题是:
1
如何以最少的更改管理作业加载器(使用开箱即用的解决方案)仅按指定组过滤作业(在此作业上下文中不应处理不同的组)?
2
如何在石英调度器中仅注册对当前服务有效的 JobClass? (作为示例服务可以仅支持 googleRetry 作业,但 DB 包含 fbRetry 和 linkedInRetry。该实例应仅加载 googleRetry 作业。)我希望它可以管理从不同方面加载的作业。
3
我在石英DriverDelegate下一个方法中检测到
/**
* <p>
* Get the names of all of the triggers in the given group and state that
* have misfired - according to the given timestamp.
* </p>
*
* @param conn
* the DB Connection
* @return an array of <code>{@link
* org.quartz.utils.Key}</code> objects
*/
List<TriggerKey> selectMisfiredTriggersInGroupInState(Connection conn,
String groupName, String state, long ts) throws SQLException;
但没有使用它。我希望它应该在特殊恢复模式下使用(以按组恢复过滤为例)但没有用法。我尝试使用我需要的功能来管理CustomDelegate 升级selectTriggersForRecoveringJobs,但在这种情况下获得了CURSOR issue。
是否可以使用selectMisfiredTriggersInGroupInState配置石英恢复模式,如何?
【问题讨论】:
标签: java spring quartz-scheduler restore quartz