Decrease db thrashing when starting expiration timers for messages.

This commit is contained in:
Cody Henthorne
2023-10-11 16:14:08 -04:00
parent 05296e3d9b
commit 6a6b80cce2
6 changed files with 51 additions and 28 deletions

View File

@@ -104,11 +104,11 @@ public class MarkReadReceiver extends BroadcastReceiver {
private static void scheduleDeletion(@NonNull List<ExpirationInfo> expirationInfo) {
if (expirationInfo.size() > 0) {
SignalDatabase.messages().markExpireStarted(Stream.of(expirationInfo).map(ExpirationInfo::getId).toList(), System.currentTimeMillis());
long now = System.currentTimeMillis();
SignalDatabase.messages().markExpireStarted(Stream.of(expirationInfo).map(info -> new kotlin.Pair<>(info.getId(), now)).toList());
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
expirationInfo.stream().forEach(info -> expirationManager.scheduleDeletion(info.getId(), info.isMms(), info.getExpiresIn()));
ApplicationDependencies.getExpiringMessageManager()
.scheduleDeletion(Stream.of(expirationInfo).map(info -> info.copy(info.getId(), info.getExpiresIn(), now, info.isMms())).toList());
}
}
}