From 8e48ac4edef59b71a026b79900f59b7b53899fc6 Mon Sep 17 00:00:00 2001 From: Chris Eager Date: Tue, 20 Jun 2023 12:28:12 -0500 Subject: [PATCH] Add `messagesCache` and `clientPresenceManager` to managed command dependencies --- .../textsecuregcm/workers/CommandDependencies.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/workers/CommandDependencies.java b/service/src/main/java/org/whispersystems/textsecuregcm/workers/CommandDependencies.java index 9f138e8a4..db52f40d4 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/workers/CommandDependencies.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/workers/CommandDependencies.java @@ -14,7 +14,7 @@ import java.io.IOException; import java.security.cert.CertificateException; import java.time.Clock; import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; import org.whispersystems.textsecuregcm.WhisperServerConfiguration; import org.whispersystems.textsecuregcm.WhisperServerService; import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentialsGenerator; @@ -80,6 +80,8 @@ record CommandDependencies( FaultTolerantRedisCluster cacheCluster = new FaultTolerantRedisCluster("main_cache_cluster", configuration.getCacheClusterConfiguration(), redisClusterClientResources); + ScheduledExecutorService recurringJobExecutor = environment.lifecycle() + .scheduledExecutorService(name(name, "recurringJob-%d")).threads(2).build(); Scheduler messageDeliveryScheduler = Schedulers.fromExecutorService( environment.lifecycle().executorService("messageDelivery").maxThreads(4) .build()); @@ -165,7 +167,7 @@ record CommandDependencies( SecureStorageClient secureStorageClient = new SecureStorageClient(storageCredentialsGenerator, storageServiceExecutor, configuration.getSecureStorageServiceConfiguration()); ClientPresenceManager clientPresenceManager = new ClientPresenceManager(clientPresenceCluster, - Executors.newSingleThreadScheduledExecutor(), keyspaceNotificationDispatchExecutor); + recurringJobExecutor, keyspaceNotificationDispatchExecutor); MessagesCache messagesCache = new MessagesCache(messageInsertCacheCluster, messageReadDeleteCluster, keyspaceNotificationDispatchExecutor, messageDeliveryScheduler, messageDeletionExecutor, Clock.systemUTC()); ProfilesManager profilesManager = new ProfilesManager(profiles, cacheCluster); @@ -181,9 +183,13 @@ record CommandDependencies( StoredVerificationCodeManager pendingAccountsManager = new StoredVerificationCodeManager(pendingAccounts); AccountsManager accountsManager = new AccountsManager(accounts, phoneNumberIdentifiers, cacheCluster, accountLockManager, deletedAccounts, keys, messagesManager, profilesManager, - pendingAccountsManager, secureStorageClient, secureBackupClient, secureValueRecovery2Client, clientPresenceManager, + pendingAccountsManager, secureStorageClient, secureBackupClient, secureValueRecovery2Client, + clientPresenceManager, experimentEnrollmentManager, registrationRecoveryPasswordsManager, clock); + environment.lifecycle().manage(messagesCache); + environment.lifecycle().manage(clientPresenceManager); + return new CommandDependencies( accountsManager, profilesManager,