jlucansky / Quartzmin

Quartzmin is powerful, easy to use web management tool for Quartz.NET
MIT License
555 stars 185 forks source link

Support for HostBuilder (IHost) #59

Open ernitingarg opened 1 year ago

ernitingarg commented 1 year ago

Hello Jan,

Can we have support for HostBuilder?

I have requirement to launch Quartz dashboard in Azure webjob console application. Below is sample code:

  public static async Task Main()
  {
      var builder = new HostBuilder();
      builder.ConfigureWebJobs(
          b =>
          {
              b.AddAzureStorageCoreServices();
              b.AddServiceBus(
                  a =>
                  {
                      a.MaxConcurrentCalls = 1;
                  });
          });

      /*
      builder.UseQuartzmin(
              new QuartzminOptions
              {
                  Scheduler = StdSchedulerFactory
                      .GetDefaultScheduler()
                      .Result,
              });
      */

      builder.ConfigureServices((_, s) => { ConfigureQuartz(s); });

      var host = builder.Build();
      using (host)
      {
          await host.RunAsync(token);
      }

 static void ConfigureQuartz(IServiceCollection services)
  {
      services.AddQuartz(
          q =>
          {
              // Use a Scoped container to create jobs. I'll touch on this later
              q.UseMicrosoftDependencyInjectionJobFactory();
          });

      services.AddQuartzHostedService(
          q => q.WaitForJobsToComplete = true);

      // services.AddQuartzmin();
  }