OpenIddict Quartz.NET 集成
基本配置
要配置 OpenIddict 使用 Quartz.NET 执行自动清理任务,您需要:
引用 OpenIddict.Quartz 包:
<PackageReference Include="OpenIddict.Quartz" Version="5.6.0" />
注册 Quartz.NET 服务并配置其使用依赖注入和内存存储:
services.AddQuartz(options => { options.UseMicrosoftDependencyInjectionJobFactory(); options.UseSimpleTypeLoader(); options.UseInMemoryStore(); });
获取更多信息,请阅读 Microsoft DI 集成。
注册 Quartz.NET 托管服务并配置其在所有作业完成前阻止关闭:
services.AddQuartzHostedService(options => options.WaitForJobsToComplete = true);
获取更多信息,请阅读 托管服务集成。
配置 OpenIddict 使用 Quartz.NET 集成:
services.AddOpenIddict() .AddCore(options => { options.UseQuartz(); });
高级配置
禁用修剪
Quartz.NET 集成的默认清理任务会自动删除孤立的令牌和授权。此行为可以通过禁用任何(或两者)修剪作业来自定义:
services.AddOpenIddict()
.AddCore(options =>
{
options.UseQuartz()
.DisableAuthorizationPruning()
.DisableTokenPruning();
});
修剪生命周期
所有令牌/授权如果超过 14 天,都将在修剪作业期间被移除。此生命周期可以独立地为令牌和授权更改:
services.AddOpenIddict()
.AddCore(options =>
{
options.UseQuartz()
.SetMinimumAuthorizationLifespan(TimeSpan.FromDays(7))
.SetMinimumTokenLifespan(TimeSpan.FromHours(12));
});
修剪的最小生命周期是 10 分钟。
重试失败的作业
默认情况下,任何失败的 Quartz.NET 作业都将重试两次。此重试次数可以通过以下设置进行配置:
services.AddOpenIddict()
.AddCore(options =>
{
options.UseQuartz()
.SetMaximumRefireCount(3);
});