Quartz.Extensions.Hosting 扩展托管包
Quartz.Extensions.Hosting 提供了与托管服务的集成。
提示 使用 Quartz.Extensions.Hosting 需要 Quartz 3.2 或更高版本。对于 Quartz 3.1 版本,您可以使用 Quartz.AspNetCore 包。
安装
您需要在使用 Quartz 的项目中添加 NuGet 包引用。
Quartz 3.1
Install-Package Quartz.AspNetCore
Quartz 3.2 及以后版本
Install-Package Quartz.Extensions.Hosting
使用
您可以通过在 IServiceCollection
上调用扩展方法 AddQuartzHostedService
来添加 Quartz 配置。这将在进程中添加一个托管的 Quartz 服务器,该服务器将根据应用程序的生命周期启动和停止。
提示 查看 Quartz.Extensions.DependencyInjection 文档 以了解更多关于配置 Quartz 调度器、作业和触发器的信息。
使用托管服务的程序配置示例
public class Program
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureServices((hostContext, services) =>
{
// 请参阅 Quartz.Extensions.DependencyInjection 文档了解如何配置不同方面
services.AddQuartz(q =>
{
// 您的配置放在这里
});
// Quartz.Extensions.Hosting 托管服务配置
services.AddQuartzHostedService(options =>
{
// 关闭时我们希望作业能优雅完成
options.WaitForJobsToComplete = true;
});
});
}