Quartz.Extensions.Hosting 提供与 托管服务 的集成。

提示

Quartz.Extensions.Hosting 需要 Quartz 3.2 或更高版本。 您可以将 Quartz.AspNetCore 包与 3.1 版一起使用。


安装

您需要将 NuGet 包引用添加到使用 Quartz 的项目中。

Quartz 3.1

  1. Install-Package Quartz.AspNetCore

Quartz 3.2 起

  1. Install-Package Quartz.Extensions.Hosting

使用

您可以通过在 IServiceCollection 上调用扩展方法 AddQuartzHostedService 来添加 Quartz 配置。 这会将托管的石英服务器添加到将根据应用程序生命周期启动和停止的进程中。

提示

请参阅 Quartz.Extensions.DependencyInjection 文档 以了解有关配置 Quartz 调度程序、作业和触发器的更多信息。

利用托管服务配置的示例程序

  1. public class Program
  2. {
  3. public static void Main(string[] args)
  4. {
  5. Log.Logger = new LoggerConfiguration()
  6. .Enrich.FromLogContext()
  7. .WriteTo.Console()
  8. .CreateLogger();
  9. CreateHostBuilder(args).Build().Run();
  10. }
  11. public static IHostBuilder CreateHostBuilder(string[] args) =>
  12. Host.CreateDefaultBuilder(args)
  13. .UseSerilog()
  14. .ConfigureServices((hostContext, services) =>
  15. {
  16. // 有关如何配置不同配置方面的信息,请参阅 Quartz.Extensions.DependencyInjection 文档
  17. services.AddQuartz(q =>
  18. {
  19. // 你的配置在这里
  20. });
  21. // Quartz.Extensions.Hosting 托管
  22. services.AddQuartzHostedService(options =>
  23. {
  24. // 关闭时,我们希望作业优雅地完成
  25. options.WaitForJobsToComplete = true;
  26. });
  27. });
  28. }