From 4dd071abe24217b8c0f6ec06e279b7ddbcec4889 Mon Sep 17 00:00:00 2001 From: Vincent Cloutier Date: Fri, 17 Mar 2023 15:10:53 -0400 Subject: [PATCH] cache tweaks --- src/BirdsiteLive.Common/Settings/InstanceSettings.cs | 1 + src/BirdsiteLive.Pipeline/StatusPublicationPipeline.cs | 4 +++- src/BirdsiteLive.Twitter/CachedTwitterTweetsService.cs | 3 +-- .../StatusPublicationPipelineTests.cs | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/BirdsiteLive.Common/Settings/InstanceSettings.cs b/src/BirdsiteLive.Common/Settings/InstanceSettings.cs index db82611..c57fb27 100644 --- a/src/BirdsiteLive.Common/Settings/InstanceSettings.cs +++ b/src/BirdsiteLive.Common/Settings/InstanceSettings.cs @@ -15,6 +15,7 @@ public int FailingFollowerCleanUpThreshold { get; set; } = -1; public int UserCacheCapacity { get; set; } + public int TweetCacheCapacity { get; set; } = 20_000; public int ParallelTwitterRequests { get; set; } = 10; public int ParallelFediversePosts { get; set; } = 10; } diff --git a/src/BirdsiteLive.Pipeline/StatusPublicationPipeline.cs b/src/BirdsiteLive.Pipeline/StatusPublicationPipeline.cs index 88fbb28..045c673 100644 --- a/src/BirdsiteLive.Pipeline/StatusPublicationPipeline.cs +++ b/src/BirdsiteLive.Pipeline/StatusPublicationPipeline.cs @@ -56,7 +56,9 @@ namespace BirdsiteLive.Pipeline retrieveFollowersBlock.LinkTo(retrieveFollowersBufferBlock, new DataflowLinkOptions { PropagateCompletion = true }); retrieveFollowersBufferBlock.LinkTo(sendTweetsToFollowersBlock, new DataflowLinkOptions { PropagateCompletion = true }); - // Launch twitter user retriever + // Launch twitter user retriever after a little delay + // to give time for the Tweet cache to fill + await Task.Delay(30 * 1000, ct); var retrieveTwitterAccountsTask = _retrieveTwitterAccountsProcessor.GetTwitterUsersAsync(twitterUserToRefreshBufferBlock, ct); // Wait diff --git a/src/BirdsiteLive.Twitter/CachedTwitterTweetsService.cs b/src/BirdsiteLive.Twitter/CachedTwitterTweetsService.cs index 83da0ac..4752a19 100644 --- a/src/BirdsiteLive.Twitter/CachedTwitterTweetsService.cs +++ b/src/BirdsiteLive.Twitter/CachedTwitterTweetsService.cs @@ -18,7 +18,6 @@ namespace BirdsiteLive.Twitter private readonly MemoryCache _tweetCache; private readonly MemoryCacheEntryOptions _cacheEntryOptions = new MemoryCacheEntryOptions() - .SetSize(10000)//Size amount //Priority on removing when reaching size limit (memory pressure) .SetPriority(CacheItemPriority.Low) // Keep in cache for this time, reset time if accessed. @@ -33,7 +32,7 @@ namespace BirdsiteLive.Twitter _tweetCache = new MemoryCache(new MemoryCacheOptions() { - SizeLimit = 10000 //TODO make this use number of entries in db + SizeLimit = settings.TweetCacheCapacity, }); } #endregion diff --git a/src/Tests/BirdsiteLive.Pipeline.Tests/StatusPublicationPipelineTests.cs b/src/Tests/BirdsiteLive.Pipeline.Tests/StatusPublicationPipelineTests.cs index c439b72..31f52c5 100644 --- a/src/Tests/BirdsiteLive.Pipeline.Tests/StatusPublicationPipelineTests.cs +++ b/src/Tests/BirdsiteLive.Pipeline.Tests/StatusPublicationPipelineTests.cs @@ -16,7 +16,7 @@ namespace BirdsiteLive.Pipeline.Tests public async Task ExecuteAsync_Test() { #region Stubs - var ct = new CancellationTokenSource(10); + var ct = new CancellationTokenSource(100 * 1000); #endregion #region Mocks