Skip to content

Commit 08ef4ca

Browse files
Jörg Heffnergitgoodjhe
Jörg Heffner
authored andcommitted
Closes #2377 - add configuration for lock expiration period
1 parent 0565e59 commit 08ef4ca

File tree

12 files changed

+332
-52
lines changed

12 files changed

+332
-52
lines changed

history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/impl/jobs/HistoryCleanupJob.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.stream.Collectors;
1515
import org.slf4j.Logger;
1616
import org.slf4j.LoggerFactory;
17+
import pro.taskana.TaskanaConfiguration;
1718
import pro.taskana.common.api.ScheduledJob;
1819
import pro.taskana.common.api.TaskanaEngine;
1920
import pro.taskana.common.api.TimeInterval;
@@ -52,6 +53,10 @@ public HistoryCleanupJob(
5253
super(taskanaEngine, txProvider, scheduledJob, true);
5354
}
5455

56+
public static Duration getLockExpirationPeriod(TaskanaConfiguration taskanaConfiguration) {
57+
return taskanaConfiguration.getSimpleHistoryCleanupJobLockExpirationPeriod();
58+
}
59+
5560
@Override
5661
public void execute() {
5762
Instant createdBefore = Instant.now().minus(minimumAge);

lib/taskana-core-test/src/test/java/acceptance/TaskanaConfigurationTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,21 +270,27 @@ void should_PopulateEveryTaskanaConfiguration_When_EveryBuilderFunctionIsCalled(
270270
int expectedJobBatchSize = 50;
271271
Instant expectedJobFirstJun = Instant.MIN;
272272
Duration expectedJobRunEvery = Duration.ofDays(2);
273+
Duration expectedJobLockExpirationPeriod = Duration.ofDays(2);
273274
boolean expectedTaskCleanupJobEnabled = false;
274275
Duration expectedTaskCleanupJobMinimumAge = Duration.ofDays(1);
275276
boolean expectedTaskCleanupJobAllCompletedSameParentBusiness = false;
277+
Duration expectedTaskCleanupJobLockExpirationPeriod = Duration.ofDays(2);
276278
boolean expectedWorkbasketCleanupJobEnabled = false;
279+
Duration expectedWorkbasketCleanupJobLockExpirationPeriod = Duration.ofDays(2);
277280
boolean expectedSimpleHistoryCleanupJobEnabled = true;
278281
int expectedSimpleHistoryCleanupJobBatchSize = 16;
279282
Duration expectedSimpleHistoryCleanupJobMinimumAge = Duration.ofHours(3);
280283
boolean expectedSimpleHistoryCleanupJobAllCompletedSameParentBusiness = false;
284+
Duration expectedSimpleHistoryCleanupJobLockExpirationPeriod = Duration.ofDays(2);
281285
boolean expectedTaskUpdatePriorityJobEnabled = true;
282286
int expectedPriorityJobBatchSize = 49;
283287
Instant expectedPriorityJobFirstRun = Instant.MIN.plus(1, ChronoUnit.DAYS);
284288
Duration expectedTaskUpdatePriorityJobRunEvery = Duration.ofMinutes(17);
289+
Duration expectedTaskUpdatePriorityJobLockExpirationPeriod = Duration.ofDays(2);
285290
boolean expectedUserInfoRefreshJobEnabled = true;
286291
Instant expectedUserRefreshJobFirstRun = Instant.MIN.plus(2, ChronoUnit.DAYS);
287292
Duration expectedUserRefreshJobRunEvery = Duration.ofDays(5);
293+
Duration expectedUserRefreshJobLockExpirationPeriod = Duration.ofDays(2);
288294
Set<String> expectedJobSchedulerCustomJobs = Set.of("Job_A", "Job_B");
289295
// user configuration
290296
boolean expectedAddAdditionalUserInfo = true;
@@ -329,23 +335,32 @@ void should_PopulateEveryTaskanaConfiguration_When_EveryBuilderFunctionIsCalled(
329335
.jobBatchSize(expectedJobBatchSize)
330336
.jobFirstRun(expectedJobFirstJun)
331337
.jobRunEvery(expectedJobRunEvery)
338+
.jobLockExpirationPeriod(expectedJobLockExpirationPeriod)
332339
.taskCleanupJobEnabled(expectedTaskCleanupJobEnabled)
333340
.taskCleanupJobMinimumAge(expectedTaskCleanupJobMinimumAge)
334341
.taskCleanupJobAllCompletedSameParentBusiness(
335342
expectedTaskCleanupJobAllCompletedSameParentBusiness)
343+
.taskCleanupJobLockExpirationPeriod(expectedTaskCleanupJobLockExpirationPeriod)
336344
.workbasketCleanupJobEnabled(expectedWorkbasketCleanupJobEnabled)
345+
.workbasketCleanupJobLockExpirationPeriod(
346+
expectedWorkbasketCleanupJobLockExpirationPeriod)
337347
.simpleHistoryCleanupJobEnabled(expectedSimpleHistoryCleanupJobEnabled)
338348
.simpleHistoryCleanupJobBatchSize(expectedSimpleHistoryCleanupJobBatchSize)
339349
.simpleHistoryCleanupJobMinimumAge(expectedSimpleHistoryCleanupJobMinimumAge)
340350
.simpleHistoryCleanupJobAllCompletedSameParentBusiness(
341351
expectedSimpleHistoryCleanupJobAllCompletedSameParentBusiness)
352+
.simpleHistoryCleanupJobLockExpirationPeriod(
353+
expectedSimpleHistoryCleanupJobLockExpirationPeriod)
342354
.taskUpdatePriorityJobEnabled(expectedTaskUpdatePriorityJobEnabled)
343355
.taskUpdatePriorityJobBatchSize(expectedPriorityJobBatchSize)
344356
.taskUpdatePriorityJobFirstRun(expectedPriorityJobFirstRun)
345357
.taskUpdatePriorityJobRunEvery(expectedTaskUpdatePriorityJobRunEvery)
358+
.taskUpdatePriorityJobLockExpirationPeriod(
359+
expectedTaskUpdatePriorityJobLockExpirationPeriod)
346360
.userInfoRefreshJobEnabled(expectedUserInfoRefreshJobEnabled)
347361
.userRefreshJobFirstRun(expectedUserRefreshJobFirstRun)
348362
.userRefreshJobRunEvery(expectedUserRefreshJobRunEvery)
363+
.userRefreshJobLockExpirationPeriod(expectedUserRefreshJobLockExpirationPeriod)
349364
.customJobs(expectedJobSchedulerCustomJobs)
350365
// user configuration
351366
.addAdditionalUserInfo(expectedAddAdditionalUserInfo)
@@ -467,21 +482,27 @@ void should_PopulateEveryConfigurationProperty_When_UsingCopyConstructor() {
467482
.jobBatchSize(50)
468483
.jobFirstRun(Instant.MIN)
469484
.jobRunEvery(Duration.ofDays(2))
485+
.jobLockExpirationPeriod(Duration.ofDays(2))
470486
.taskCleanupJobEnabled(false)
471487
.taskCleanupJobMinimumAge(Duration.ofDays(1))
472488
.taskCleanupJobAllCompletedSameParentBusiness(false)
489+
.taskCleanupJobLockExpirationPeriod(Duration.ofDays(6))
473490
.workbasketCleanupJobEnabled(false)
491+
.workbasketCleanupJobLockExpirationPeriod(Duration.ofDays(7))
474492
.simpleHistoryCleanupJobEnabled(true)
475493
.simpleHistoryCleanupJobBatchSize(16)
476494
.simpleHistoryCleanupJobMinimumAge(Duration.ofHours(3))
477495
.simpleHistoryCleanupJobAllCompletedSameParentBusiness(false)
496+
.simpleHistoryCleanupJobLockExpirationPeriod(Duration.ofDays(9))
478497
.taskUpdatePriorityJobEnabled(true)
479498
.taskUpdatePriorityJobBatchSize(49)
480499
.taskUpdatePriorityJobFirstRun(Instant.MIN.plus(1, ChronoUnit.DAYS))
481500
.taskUpdatePriorityJobRunEvery(Duration.ofMinutes(17))
501+
.taskUpdatePriorityJobLockExpirationPeriod(Duration.ofDays(10))
482502
.userInfoRefreshJobEnabled(true)
483503
.userRefreshJobFirstRun(Instant.MIN.plus(2, ChronoUnit.DAYS))
484504
.userRefreshJobRunEvery(Duration.ofDays(5))
505+
.userRefreshJobLockExpirationPeriod(Duration.ofDays(8))
485506
.customJobs(Set.of("Job_A", "Job_B"))
486507
// user configuration
487508
.addAdditionalUserInfo(true)

lib/taskana-core-test/src/test/resources/fullTaskana.properties

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,27 @@ taskana.jobs.maxRetries=4
3535
taskana.jobs.batchSize=50
3636
taskana.jobs.firstRunAt=2018-07-25T08:00:00Z
3737
taskana.jobs.runEvery=P2D
38+
taskana.jobs.lockExpirationPeriod=PT7M
3839
taskana.jobs.cleanup.task.enable=false
3940
taskana.jobs.cleanup.task.minimumAge=P15D
4041
taskana.jobs.cleanup.task.allCompletedSameParentBusiness=false
42+
taskana.jobs.cleanup.task.lockExpirationPeriod=PT4M
4143
taskana.jobs.cleanup.workbasket.enable=false
44+
taskana.jobs.cleanup.workbasket.lockExpirationPeriod=PT3M
4245
taskana.jobs.cleanup.history.simple.enable=true
4346
taskana.jobs.cleanup.history.simple.batchSize=50
4447
taskana.jobs.cleanup.history.simple.minimumAge=P17D
4548
taskana.jobs.cleanup.history.simple.allCompletedSameParentBusiness=false
49+
taskana.jobs.cleanup.history.simple.lockExpirationPeriod=PT2M
4650
taskana.jobs.priority.task.enable=true
4751
taskana.jobs.priority.task.batchSize=50
4852
taskana.jobs.priority.task.firstRunAt=2018-07-25T08:00:00Z
4953
taskana.jobs.priority.task.runEvery=P3D
54+
taskana.jobs.priority.task.lockExpirationPeriod=PT8M
5055
taskana.jobs.refresh.user.enable=true
5156
taskana.jobs.refresh.user.firstRunAt=2018-07-25T08:00:00Z
5257
taskana.jobs.refresh.user.runEvery=P4D
58+
taskana.jobs.refresh.user.lockExpirationPeriod=PT5M
5359
taskana.jobs.customJobs=A | B | C
5460
# user configuration
5561
taskana.user.addAdditionalUserInfo=true

0 commit comments

Comments
 (0)