/** * 设置任务被错过执行的标记. * * @param items 需要设置错过执行的任务分片项 */ public void setMisfire(final List<Integer> items) { if (!configService.isMonitorExecution()) { return; } for (int each : items) { jobNodeStorage.createJobNodeIfNeeded(ExecutionNode.getMisfireNode(each)); } }
/** * 获取标记被错过执行的任务分片项. * * @param items 需要获取标记被错过执行的任务分片项 * @return 标记被错过执行的任务分片项 */ public List<Integer> getMisfiredJobItems(final List<Integer> items) { List<Integer> result = new ArrayList<>(items.size()); for (int each : items) { if (jobNodeStorage.isJobNodeExisted(ExecutionNode.getMisfireNode(each))) { result.add(each); } } return result; }
@Test public void assertGetMisfireNode() { assertThat(ExecutionNode.getMisfireNode(0), is("execution/0/misfire")); }
/** * 清除任务被错过执行的标记. * * @param items 需要清除错过执行的任务分片项 */ public void clearMisfire(final List<Integer> items) { for (int each : items) { jobNodeStorage.removeJobNodeIfExisted(ExecutionNode.getMisfireNode(each)); } }