ExecutionService { public void registerJobBegin(final ShardingContexts shardingContexts) { JobRegistry.getInstance().setJobRunning(jobName, true); if (!configService.load(true).isMonitorExecution()) { return; } for (int each : shardingContexts.getShardingItemParameters().keySet()) { jobNodeStorage.fillEphemeralJobNode(ShardingNode.getRunningNode(each), ""); } } ExecutionService(final CoordinatorRegistryCenter regCenter, final String jobName); void registerJobBegin(final ShardingContexts shardingContexts); void registerJobCompleted(final ShardingContexts shardingContexts); void clearAllRunningInfo(); void clearRunningInfo(final List<Integer> items); boolean hasRunningItems(final Collection<Integer> items); boolean hasRunningItems(); boolean misfireIfHasRunningItems(final Collection<Integer> items); void setMisfire(final Collection<Integer> items); List<Integer> getMisfiredJobItems(final Collection<Integer> items); void clearMisfire(final Collection<Integer> items); List<Integer> getDisabledItems(final List<Integer> items);  }
@Test public void assertRegisterJobBeginWithoutMonitorExecution() { when(configService.load(true)).thenReturn(JobConfiguration.newBuilder("test_job", 3).cron("0/1 * * * * ?").monitorExecution(false).build()); executionService.registerJobBegin(getShardingContext()); verify(jobNodeStorage, times(0)).fillEphemeralJobNode(any(), any()); assertTrue(JobRegistry.getInstance().isJobRunning("test_job")); }
@Test public void assertRegisterJobBeginWithMonitorExecution() { when(configService.load(true)).thenReturn(JobConfiguration.newBuilder("test_job", 3).cron("0/1 * * * * ?").monitorExecution(true).build()); executionService.registerJobBegin(getShardingContext()); verify(jobNodeStorage).fillEphemeralJobNode("sharding/0/running", ""); verify(jobNodeStorage).fillEphemeralJobNode("sharding/1/running", ""); verify(jobNodeStorage).fillEphemeralJobNode("sharding/2/running", ""); assertTrue(JobRegistry.getInstance().isJobRunning("test_job")); }