reduce cache time for mod compatibility list
This commit is contained in:
parent
2990784433
commit
5db5ca1c88
|
@ -11,6 +11,9 @@
|
||||||
* `Specialised.LoadStageChanged`.
|
* `Specialised.LoadStageChanged`.
|
||||||
* You can now use `helper.Data.Read/WriteSaveData` as soon as the save is loaded (instead of once the world is initialised).
|
* You can now use `helper.Data.Read/WriteSaveData` as soon as the save is loaded (instead of once the world is initialised).
|
||||||
|
|
||||||
|
* For the web UI:
|
||||||
|
* Reduced mod compatibility list's cache time.
|
||||||
|
|
||||||
## 2.9.3
|
## 2.9.3
|
||||||
* For players:
|
* For players:
|
||||||
* Fixed errors hovering items in some cases with SMAPI 2.9.2.
|
* Fixed errors hovering items in some cases with SMAPI 2.9.2.
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace StardewModdingAPI.Web.Controllers
|
||||||
private readonly IMemoryCache Cache;
|
private readonly IMemoryCache Cache;
|
||||||
|
|
||||||
/// <summary>The number of minutes successful update checks should be cached before refetching them.</summary>
|
/// <summary>The number of minutes successful update checks should be cached before refetching them.</summary>
|
||||||
private readonly int SuccessCacheMinutes;
|
private readonly int CacheMinutes;
|
||||||
|
|
||||||
|
|
||||||
/*********
|
/*********
|
||||||
|
@ -31,12 +31,12 @@ namespace StardewModdingAPI.Web.Controllers
|
||||||
/// <summary>Construct an instance.</summary>
|
/// <summary>Construct an instance.</summary>
|
||||||
/// <param name="cache">The cache in which to store mod metadata.</param>
|
/// <param name="cache">The cache in which to store mod metadata.</param>
|
||||||
/// <param name="configProvider">The config settings for mod update checks.</param>
|
/// <param name="configProvider">The config settings for mod update checks.</param>
|
||||||
public ModsController(IMemoryCache cache, IOptions<ModUpdateCheckConfig> configProvider)
|
public ModsController(IMemoryCache cache, IOptions<ModCompatibilityListConfig> configProvider)
|
||||||
{
|
{
|
||||||
ModUpdateCheckConfig config = configProvider.Value;
|
ModCompatibilityListConfig config = configProvider.Value;
|
||||||
|
|
||||||
this.Cache = cache;
|
this.Cache = cache;
|
||||||
this.SuccessCacheMinutes = config.SuccessCacheMinutes;
|
this.CacheMinutes = config.CacheMinutes;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Display information for all mods.</summary>
|
/// <summary>Display information for all mods.</summary>
|
||||||
|
@ -66,7 +66,7 @@ namespace StardewModdingAPI.Web.Controllers
|
||||||
.OrderBy(p => Regex.Replace(p.Name.ToLower(), "[^a-z0-9]", "")) // ignore case, spaces, and special characters when sorting
|
.OrderBy(p => Regex.Replace(p.Name.ToLower(), "[^a-z0-9]", "")) // ignore case, spaces, and special characters when sorting
|
||||||
);
|
);
|
||||||
|
|
||||||
entry.AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(this.SuccessCacheMinutes);
|
entry.AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(this.CacheMinutes);
|
||||||
return model;
|
return model;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
namespace StardewModdingAPI.Web.Framework.ConfigModels
|
||||||
|
{
|
||||||
|
/// <summary>The config settings for mod compatibility list.</summary>
|
||||||
|
internal class ModCompatibilityListConfig
|
||||||
|
{
|
||||||
|
/*********
|
||||||
|
** Accessors
|
||||||
|
*********/
|
||||||
|
/// <summary>The number of minutes data from the wiki should be cached before refetching it.</summary>
|
||||||
|
public int CacheMinutes { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -50,6 +50,7 @@ namespace StardewModdingAPI.Web
|
||||||
{
|
{
|
||||||
// init configuration
|
// init configuration
|
||||||
services
|
services
|
||||||
|
.Configure<ModCompatibilityListConfig>(this.Configuration.GetSection("ModCompatibilityList"))
|
||||||
.Configure<ModUpdateCheckConfig>(this.Configuration.GetSection("ModUpdateCheck"))
|
.Configure<ModUpdateCheckConfig>(this.Configuration.GetSection("ModUpdateCheck"))
|
||||||
.Configure<SiteConfig>(this.Configuration.GetSection("Site"))
|
.Configure<SiteConfig>(this.Configuration.GetSection("Site"))
|
||||||
.Configure<RouteOptions>(options => options.ConstraintMap.Add("semanticVersion", typeof(VersionConstraint)))
|
.Configure<RouteOptions>(options => options.ConstraintMap.Add("semanticVersion", typeof(VersionConstraint)))
|
||||||
|
|
|
@ -47,6 +47,10 @@
|
||||||
"PastebinDevKey": null // see top note
|
"PastebinDevKey": null // see top note
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"ModCompatibilityList": {
|
||||||
|
"WikiCacheMinutes": 10
|
||||||
|
},
|
||||||
|
|
||||||
"ModUpdateCheck": {
|
"ModUpdateCheck": {
|
||||||
"SuccessCacheMinutes": 60,
|
"SuccessCacheMinutes": 60,
|
||||||
"ErrorCacheMinutes": 5,
|
"ErrorCacheMinutes": 5,
|
||||||
|
|
Loading…
Reference in New Issue