use of org.camunda.bpm.engine.impl.jobexecutor.historycleanup.HistoryCleanupJobHandlerConfiguration in project camunda-bpm-platform by camunda.
the class HistoryCleanupTest method testLessThanThresholdOutsideBatchWindowAfterMidnight.
@Test
public void testLessThanThresholdOutsideBatchWindowAfterMidnight() {
// given
prepareData(5);
// we're outside batch window, batch window passes midnight
Date date = new Date();
// 01:10
ClockUtil.setCurrentTime(DateUtils.setMinutes(DateUtils.setHours(date, 1), 10));
processEngineConfiguration.setHistoryCleanupBatchWindowStartTime("23:00");
processEngineConfiguration.setHistoryCleanupBatchWindowEndTime("01:00");
processEngineConfiguration.initHistoryCleanup();
// when
String jobId = historyService.cleanUpHistoryAsync().getId();
managementService.executeJob(jobId);
// then
JobEntity jobEntity = getJobEntity(jobId);
HistoryCleanupJobHandlerConfiguration configuration = getConfiguration(jobEntity);
// job rescheduled till next batch window start
Date nextRun = getNextRunWithinBatchWindow(ClockUtil.getCurrentTime());
assertTrue(jobEntity.getDuedate().equals(nextRun));
assertTrue(nextRun.after(ClockUtil.getCurrentTime()));
// countEmptyRuns canceled
assertEquals(0, configuration.getCountEmptyRuns());
// nothing was removed
assertResult(5);
}
use of org.camunda.bpm.engine.impl.jobexecutor.historycleanup.HistoryCleanupJobHandlerConfiguration in project camunda-bpm-platform by camunda.
the class HistoryCleanupTest method testLessThanThresholdWithinBatchWindow.
@Test
public void testLessThanThresholdWithinBatchWindow() {
// given
prepareData(5);
// we're within batch window
Date now = new Date();
ClockUtil.setCurrentTime(now);
processEngineConfiguration.setHistoryCleanupBatchWindowStartTime(new SimpleDateFormat("HH:mm").format(now));
processEngineConfiguration.setHistoryCleanupBatchWindowEndTime(new SimpleDateFormat("HH:mm").format(DateUtils.addHours(now, HISTORY_TIME_TO_LIVE)));
processEngineConfiguration.initHistoryCleanup();
// when
String jobId = historyService.cleanUpHistoryAsync().getId();
managementService.executeJob(jobId);
// then
JobEntity jobEntity = getJobEntity(jobId);
HistoryCleanupJobHandlerConfiguration configuration = getConfiguration(jobEntity);
// job rescheduled till current time + delay
Date nextRun = getNextRunWithDelay(ClockUtil.getCurrentTime(), 0);
assertTrue(jobEntity.getDuedate().equals(nextRun) || jobEntity.getDuedate().after(nextRun));
Date nextRunMax = DateUtils.addSeconds(ClockUtil.getCurrentTime(), HistoryCleanupJobHandlerConfiguration.MAX_DELAY);
assertTrue(jobEntity.getDuedate().before(nextRunMax));
// countEmptyRuns incremented
assertEquals(1, configuration.getCountEmptyRuns());
// data is still removed
assertResult(0);
}
use of org.camunda.bpm.engine.impl.jobexecutor.historycleanup.HistoryCleanupJobHandlerConfiguration in project camunda-bpm-platform by camunda.
the class HistoryCleanupTest method testLessThanThresholdOutsideBatchWindow.
@Test
public void testLessThanThresholdOutsideBatchWindow() {
// given
prepareData(5);
// we're outside batch window
Date twoHoursAgo = new Date();
processEngineConfiguration.setHistoryCleanupBatchWindowStartTime(new SimpleDateFormat("HH:mm").format(twoHoursAgo));
processEngineConfiguration.setHistoryCleanupBatchWindowEndTime(new SimpleDateFormat("HH:mm").format(DateUtils.addHours(twoHoursAgo, 1)));
processEngineConfiguration.initHistoryCleanup();
ClockUtil.setCurrentTime(DateUtils.addHours(twoHoursAgo, 2));
// when
String jobId = historyService.cleanUpHistoryAsync().getId();
for (int i = 1; i <= 3; i++) {
managementService.executeJob(jobId);
}
// then
JobEntity jobEntity = getJobEntity(jobId);
HistoryCleanupJobHandlerConfiguration configuration = getConfiguration(jobEntity);
// job rescheduled till next batch window start
Date nextRun = getNextRunWithinBatchWindow(ClockUtil.getCurrentTime());
assertTrue(jobEntity.getDuedate().equals(nextRun));
// countEmptyRuns canceled
assertEquals(0, configuration.getCountEmptyRuns());
// nothing was removed
assertResult(5);
}
use of org.camunda.bpm.engine.impl.jobexecutor.historycleanup.HistoryCleanupJobHandlerConfiguration in project camunda-bpm-platform by camunda.
the class HistoryCleanupTest method testLessThanThresholdCloseToBatchWindowEndTime.
@Test
public void testLessThanThresholdCloseToBatchWindowEndTime() {
// given
prepareData(5);
// we're within batch window
Date now = new Date();
ClockUtil.setCurrentTime(now);
processEngineConfiguration.setHistoryCleanupBatchWindowStartTime(new SimpleDateFormat("HH:mm").format(now));
processEngineConfiguration.setHistoryCleanupBatchWindowEndTime(new SimpleDateFormat("HH:mm").format(DateUtils.addMinutes(now, 30)));
processEngineConfiguration.initHistoryCleanup();
// when
String jobId = historyService.cleanUpHistoryAsync().getId();
for (int i = 1; i <= 9; i++) {
managementService.executeJob(jobId);
}
// then
JobEntity jobEntity = getJobEntity(jobId);
HistoryCleanupJobHandlerConfiguration configuration = getConfiguration(jobEntity);
// job rescheduled till next batch window start time
Date nextRun = getNextRunWithinBatchWindow(ClockUtil.getCurrentTime());
assertTrue(jobEntity.getDuedate().equals(nextRun));
// countEmptyRuns canceled
assertEquals(0, configuration.getCountEmptyRuns());
// data is still removed
assertResult(0);
}
Aggregations