我正在使用石英来安排工作。作业是在“默认”组中创建的,相关信息在使用 schedule api 时以作业详细信息图的形式作为有效负载传递。
Trigger trigger = new Trigger(...);
JobDetail jobDetail = new JobDetail(...);
jobDetail.put(...);
scheduler.schedule(trigger, jobDetail);
我希望 API 能够根据发送的有效负载查询数据库中的触发器。例如,我将“externalId”作为 jobDetail 的一部分。
我想做类似的事情
scheduler.getTriggers(new Criteria("externalId", externalId));
而不是获取内存中的所有触发器然后对其进行迭代。我在网上搜索了一下,但找不到一个 API 来做同样的事情。
编辑:从石英 2.1.5 开始,有一些新的 API
scheduler.getTrigger(triggerKey(jobId, jobGroupName)); // which can fetch the exact trigger given the triggerKey
scheduler.getTriggerKeys(GroupMatcher.triggerGroupContains(JOB_GROUP_NAME)); //this searches all the triggers for a group.
但是,这些不适用于石英 1.8。一个限制仍然是触发搜索需要准确并且本质上不能是 LIKE %