X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FMemoryDatabase.kt;h=a9459e88f4fa9d3d9f65c352555f3243f11906e1;hb=1acab7994675db5fc17a7d242d7de0304efb6987;hp=4e960ec5407f1d5a30df049a6a239e8c133252ee;hpb=a697ce78fc213bd83c696507cc66796610fd189c;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.kt b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.kt index 4e960ec..a9459e8 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.kt +++ b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.kt @@ -1,5 +1,5 @@ /* - * Sone - MemoryDatabase.java - Copyright © 2013–2019 David Roden + * Sone - MemoryDatabase.kt - Copyright © 2013–2019 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ import com.google.common.base.Preconditions.checkNotNull import com.google.common.collect.HashMultimap import com.google.common.collect.Multimap import com.google.common.collect.TreeMultimap -import com.google.common.util.concurrent.AbstractService +import com.google.common.util.concurrent.* import com.google.inject.Inject import com.google.inject.Singleton import net.pterodactylus.sone.data.Album @@ -70,6 +70,7 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio private val soneImages: Multimap = HashMultimap.create() private val memoryBookmarkDatabase = MemoryBookmarkDatabase(this, configurationLoader) private val memoryFriendDatabase = MemoryFriendDatabase(configurationLoader) + private val saveRateLimiter: RateLimiter = RateLimiter.create(1.0) override val soneLoader get() = this::getSone @@ -82,8 +83,10 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio override val bookmarkedPosts get() = memoryBookmarkDatabase.bookmarkedPosts override fun save() { - saveKnownPosts() - saveKnownPostReplies() + if (saveRateLimiter.tryAcquire()) { + saveKnownPosts() + saveKnownPostReplies() + } } override fun doStart() {