From 30f3682c51a4f5351bb7202538ee3e0179c7fa1d Mon Sep 17 00:00:00 2001 From: Holger Hagen <19706592+holgerhagen@users.noreply.github.com> Date: Thu, 19 Jul 2018 17:36:02 +0200 Subject: [PATCH] TSK-629: review findings incorporated. --- .../TaskanaEngineConfiguration.java | 28 ++++++++----------- .../main/java/pro/taskana/jobs/JobRunner.java | 2 -- .../src/test/resources/taskana.properties | 4 +-- .../taskana/jobs/TaskCleanupJobIntTest.java | 6 ++-- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/lib/taskana-core/src/main/java/pro/taskana/configuration/TaskanaEngineConfiguration.java b/lib/taskana-core/src/main/java/pro/taskana/configuration/TaskanaEngineConfiguration.java index 3080dded3..e2883fd2a 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/configuration/TaskanaEngineConfiguration.java +++ b/lib/taskana-core/src/main/java/pro/taskana/configuration/TaskanaEngineConfiguration.java @@ -44,8 +44,8 @@ public class TaskanaEngineConfiguration { private static final String H2_DRIVER = "org.h2.Driver"; private static final String TASKANA_PROPERTIES = "/taskana.properties"; private static final String TASKANA_ROLES_SEPARATOR = "|"; - private static final String TASKANA_JOB_TASK_UPDATES_PER_TRANSACTION = "taskana.jobs.batchSize"; - private static final String TASKANA_JOB_RETRIES_FOR_FAILED_TASK_UPDATES = "taskana.jobs.maxRetries"; + private static final String TASKANA_JOB_BATCHSIZE = "taskana.jobs.batchSize"; + private static final String TASKANA_JOB_RETRIES = "taskana.jobs.maxRetries"; private static final String TASKANA_DOMAINS_PROPERTY = "taskana.domains"; private static final String TASKANA_CLASSIFICATION_TYPES_PROPERTY = "taskana.classification.types"; @@ -74,8 +74,8 @@ public class TaskanaEngineConfiguration { private List customHolidays; // Properties for task-update Job execution on classification change - private int maxNumberOfTaskUpdatesPerTransaction; - private int maxNumberOfJobRetries; + private int jobBatchSize = 100; + private int maxNumberOfJobRetries = 3; // List of configured domain names protected List domains = new ArrayList(); @@ -138,23 +138,19 @@ public class TaskanaEngineConfiguration { } private void initJobParameters(Properties props) { - String taskUpdates = props.getProperty(TASKANA_JOB_TASK_UPDATES_PER_TRANSACTION); - if (taskUpdates == null || taskUpdates.isEmpty()) { - maxNumberOfTaskUpdatesPerTransaction = 50; - } else { - maxNumberOfTaskUpdatesPerTransaction = Integer.parseInt(taskUpdates); + String jobBatchSizeProperty = props.getProperty(TASKANA_JOB_BATCHSIZE); + if (jobBatchSizeProperty != null && !jobBatchSizeProperty.isEmpty()) { + jobBatchSize = Integer.parseInt(jobBatchSizeProperty); } - String retries = props.getProperty(TASKANA_JOB_RETRIES_FOR_FAILED_TASK_UPDATES); - if (retries == null || retries.isEmpty()) { - maxNumberOfJobRetries = 3; - } else { - maxNumberOfJobRetries = Integer.parseInt(retries); + String maxNumberOfJobRetriesProperty = props.getProperty(TASKANA_JOB_RETRIES); + if (maxNumberOfJobRetriesProperty != null && !maxNumberOfJobRetriesProperty.isEmpty()) { + maxNumberOfJobRetries = Integer.parseInt(maxNumberOfJobRetriesProperty); } LOGGER.debug( "Configured number of task updates per transaction: {}, number of retries of failed task updates: {}", - maxNumberOfTaskUpdatesPerTransaction, maxNumberOfJobRetries); + jobBatchSize, maxNumberOfJobRetries); } private void initDomains(Properties props) { @@ -309,7 +305,7 @@ public class TaskanaEngineConfiguration { } public int getMaxNumberOfTaskUpdatesPerTransaction() { - return maxNumberOfTaskUpdatesPerTransaction; + return jobBatchSize; } public int getMaxNumberOfJobRetries() { diff --git a/lib/taskana-core/src/main/java/pro/taskana/jobs/JobRunner.java b/lib/taskana-core/src/main/java/pro/taskana/jobs/JobRunner.java index 1d1c08854..54829d867 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/jobs/JobRunner.java +++ b/lib/taskana-core/src/main/java/pro/taskana/jobs/JobRunner.java @@ -15,14 +15,12 @@ public class JobRunner { private static final Logger LOGGER = LoggerFactory.getLogger(TaskServiceImpl.class); private TaskanaEngine taskanaEngine; private TaskanaTransactionProvider txProvider; - private int batchSize = 50; private int maxRetryCount; private int attempt = 0; public JobRunner(TaskanaEngine taskanaEngine) { this.taskanaEngine = taskanaEngine; maxRetryCount = taskanaEngine.getConfiguration().getMaxNumberOfJobRetries(); - batchSize = taskanaEngine.getConfiguration().getMaxNumberOfTaskUpdatesPerTransaction(); } public void registerTransactionProvider( diff --git a/lib/taskana-core/src/test/resources/taskana.properties b/lib/taskana-core/src/test/resources/taskana.properties index 3d2ef4796..4e7206691 100644 --- a/lib/taskana-core/src/test/resources/taskana.properties +++ b/lib/taskana-core/src/test/resources/taskana.properties @@ -8,5 +8,5 @@ taskana.domains= Domain_A , DOMAIN_B taskana.classification.types= TASK , document taskana.classification.categories= EXTERNAL , manual, autoMAtic ,Process -taskana.jobs.taskupdate.maxRetries=3 -taskana.jobs.taskupdate.batchSize=50 +taskana.jobs.maxRetries=3 +taskana.jobs.batchSize=50 diff --git a/rest/taskana-rest-spring-example/src/test/java/pro/taskana/jobs/TaskCleanupJobIntTest.java b/rest/taskana-rest-spring-example/src/test/java/pro/taskana/jobs/TaskCleanupJobIntTest.java index b06115dcd..5cfca4f07 100644 --- a/rest/taskana-rest-spring-example/src/test/java/pro/taskana/jobs/TaskCleanupJobIntTest.java +++ b/rest/taskana-rest-spring-example/src/test/java/pro/taskana/jobs/TaskCleanupJobIntTest.java @@ -92,7 +92,7 @@ public class TaskCleanupJobIntTest { new ParameterizedTypeReference>() { }); assertNotNull(response.getBody().getLink(Link.REL_SELF)); - assertEquals(71, response.getBody().getContent().size()); + assertEquals(73, response.getBody().getContent().size()); // wait until the next trigger time + 2 seconds to give JobScheduler a chance to run String cron = env.getProperty("taskana.jobscheduler.async.cron"); @@ -122,7 +122,7 @@ public class TaskCleanupJobIntTest { Thread.sleep(delay); LOGGER.info("Sleeping ended. Continuing .... "); - // verify the 25 completed tasks have been deleted. + // verify the 6 completed tasks have been deleted. template = getRestTemplate(); headers = new HttpHeaders(); headers.add("Authorization", "Basic YWRtaW46YWRtaW4="); // Role Admin @@ -133,7 +133,7 @@ public class TaskCleanupJobIntTest { }); assertNotNull(response.getBody().getLink(Link.REL_SELF)); // TODO - assertEquals(66, response.getBody().getContent().size()); + assertEquals(67, response.getBody().getContent().size()); } private void verifyTaskIsModifiedAfter(String taskId, Instant before) throws InvalidArgumentException {