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;
                });
            });
}
在本文档中