Skip to content

Commit

Permalink
A temporary solution to reduce number of requests to filebot source s…
Browse files Browse the repository at this point in the history
…erver

Will be replaced by more robust solution (issue #305)
  • Loading branch information
szyb committed Jun 18, 2022
1 parent 0ea96ef commit 0706a3d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
19 changes: 17 additions & 2 deletions src/Synopackage.Model/Model/Services/CacheService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,11 @@ public async Task<CacheSpkResponseDTO> GetSpkResponseFromCache(string sourceName
FileInfo cacheFileInfo = new FileInfo(fileNameByArch);
if (cacheFileInfo.Exists)
{
var isExpired = IsCacheFileExpired(cacheFileInfo, AppSettingsProvider.AppSettings.CacheSpkServerResponseTimeInHours.Value);
var expirationInHours = AppSettingsProvider.AppSettings.CacheSpkServerResponseTimeInHours.Value;
//a temporary hack for filebot to minimize number of requests to filebot server
if (sourceName == "filebot")
expirationInHours = 24;
var isExpired = IsCacheFileExpired(cacheFileInfo, expirationInHours);
return new CacheSpkResponseDTO()
{
HasValidCache = !isExpired,
Expand All @@ -246,7 +250,11 @@ public async Task<CacheSpkResponseDTO> GetSpkResponseForRepositoryFromCache(stri
{
var fileNameByArch = GetResponseCacheByArchFile(sourceName, arch, version, isBeta);
FileInfo cacheFileInfo = new FileInfo(fileNameByArch);
if (!IsCacheFileExpired(cacheFileInfo, AppSettingsProvider.AppSettings.CacheSpkServerResponseTimeInHoursForRepository))
var expirationInHours = AppSettingsProvider.AppSettings.CacheSpkServerResponseTimeInHoursForRepository;
//a temporary hack for filebot to minimize number of requests to filebot server
if (sourceName == "filebot")
expirationInHours = 24;
if (!IsCacheFileExpired(cacheFileInfo, expirationInHours))
{
try
{
Expand Down Expand Up @@ -287,6 +295,13 @@ internal static async Task<CacheSpkDTO> GetCacheByFile(FileInfo fileInfo)
private string GetResponseCacheByArchFile(string sourceName, string arch, string version, bool isBeta)
{
var channelString = isBeta ? "beta" : "stable";
//a temporary hack for filebot to minimize number of requests to filebot server
if (sourceName == "filebot")
{
arch = "allCPUs";
version = "allVersions";
channelString = "stable";
}
return Path.Combine(AppSettingsProvider.AppSettings.BackendCacheFolder, Utils.CleanFileName($"{sourceName}_{arch}_{version}_{channelString}.{defaultCacheExtension}"));
}

Expand Down
7 changes: 6 additions & 1 deletion src/Synopackage.Web/HealthChecks/SourceHealthCheck.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,12 @@ public Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, Canc
else if (lastWriteTime < fileInfo.LastWriteTime)
lastWriteTime = fileInfo.LastWriteTime;
}
if (lastWriteTime.HasValue && lastWriteTime.Value.AddHours(12) < DateTime.Now)
//a temporary hack for filebot to minimize number of requests to filebot server
if (_source == "filebot" && lastWriteTime.HasValue && lastWriteTime.Value.AddHours(24) < DateTime.Now)
{
return Task.FromResult(new HealthCheckResult(context.Registration.FailureStatus, $"Last response from server was {(DateTime.Now - lastWriteTime.Value).TotalHours:00} hours ago"));
}
else if (lastWriteTime.HasValue && lastWriteTime.Value.AddHours(12) < DateTime.Now)
{
return Task.FromResult(new HealthCheckResult(context.Registration.FailureStatus, $"Last response from server was {(DateTime.Now - lastWriteTime.Value).TotalHours:00} hours ago"));
}
Expand Down

0 comments on commit 0706a3d

Please sign in to comment.