Some tweaks around locks and their tests
This commit is contained in:
@@ -46,7 +46,7 @@ import org.springframework.util.Assert;
|
||||
*/
|
||||
public class DynamoDbLockRegistry implements ExpirableLockRegistry, RenewableLockRegistry {
|
||||
|
||||
private static final int DEFAULT_IDLE = 1000;
|
||||
private static final int DEFAULT_IDLE = 100;
|
||||
|
||||
private final Map<String, DynamoDbLock> locks = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@ import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.CompletionException;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
@@ -54,7 +53,6 @@ import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest;
|
||||
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.scheduling.concurrent.CustomizableThreadFactory;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@@ -112,8 +110,6 @@ public class DynamoDbLockRepository implements InitializingBean, DisposableBean,
|
||||
|
||||
private static final Log LOGGER = LogFactory.getLog(DynamoDbLockRegistry.class);
|
||||
|
||||
private final ThreadFactory customizableThreadFactory = new CustomizableThreadFactory("dynamodb-lock-registry-");
|
||||
|
||||
private final CountDownLatch createTableLatch = new CountDownLatch(1);
|
||||
|
||||
private final Set<String> heldLocks = Collections.synchronizedSet(new HashSet<>());
|
||||
|
||||
@@ -25,7 +25,6 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import software.amazon.awssdk.core.retry.backoff.FixedDelayBackoffStrategy;
|
||||
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
|
||||
@@ -46,7 +45,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
*
|
||||
* @since 2.0
|
||||
*/
|
||||
@Disabled
|
||||
class DynamoDbLockRegistryLeaderInitiatorTests implements LocalstackContainerTest {
|
||||
|
||||
private static DynamoDbAsyncClient DYNAMO_DB;
|
||||
@@ -91,7 +89,7 @@ class DynamoDbLockRegistryLeaderInitiatorTests implements LocalstackContainerTes
|
||||
|
||||
LockRegistryLeaderInitiator initiator = new LockRegistryLeaderInitiator(lockRepository,
|
||||
new DefaultCandidate("foo#" + i, "bar"));
|
||||
initiator.setBusyWaitMillis(1000);
|
||||
initiator.setBusyWaitMillis(100);
|
||||
initiator.setHeartBeatMillis(1000);
|
||||
initiator.setExecutorService(
|
||||
Executors.newSingleThreadExecutor(new CustomizableThreadFactory("lock-leadership-" + i + "-")));
|
||||
@@ -144,7 +142,11 @@ class DynamoDbLockRegistryLeaderInitiatorTests implements LocalstackContainerTes
|
||||
assertThat(initiator2.getContext().isLeader()).isTrue();
|
||||
assertThat(initiator1.getContext().isLeader()).isFalse();
|
||||
|
||||
initiator1.setBusyWaitMillis(1000);
|
||||
initiator1.setBusyWaitMillis(100);
|
||||
// Interrupt the current selector and let it start with a new busy-wait period
|
||||
initiator1.stop();
|
||||
initiator1.start();
|
||||
|
||||
initiator2.setBusyWaitMillis(10000);
|
||||
|
||||
initiator2.getContext().yield();
|
||||
|
||||
@@ -381,7 +381,7 @@ public class DynamoDbLockRegistryTests implements LocalstackContainerTest {
|
||||
@Bean
|
||||
public DynamoDbLockRegistry dynamoDbLockRegistry() {
|
||||
DynamoDbLockRegistry dynamoDbLockRegistry = new DynamoDbLockRegistry(dynamoDbLockRepository());
|
||||
dynamoDbLockRegistry.setIdleBetweenTries(Duration.ofMillis(10));
|
||||
dynamoDbLockRegistry.setIdleBetweenTries(Duration.ofMillis(100));
|
||||
return dynamoDbLockRegistry;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user