Browse Source

Add Quartz StartupDelay option.

pull/3454/head
Oliver Cooper 7 years ago
parent
commit
8df24a62fd
  1. 9
      framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs
  2. 11
      framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzPreOptions.cs

9
framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs

@ -1,4 +1,5 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Quartz; using Quartz;
using Quartz.Impl; using Quartz.Impl;
using Quartz.Spi; using Quartz.Spi;
@ -20,9 +21,15 @@ namespace Volo.Abp.Quartz
public override void OnApplicationInitialization(ApplicationInitializationContext context) public override void OnApplicationInitialization(ApplicationInitializationContext context)
{ {
var options = context.ServiceProvider.GetRequiredService<IOptions<AbpQuartzPreOptions>>().Value;
_scheduler = context.ServiceProvider.GetService<IScheduler>(); _scheduler = context.ServiceProvider.GetService<IScheduler>();
_scheduler.JobFactory = context.ServiceProvider.GetService<IJobFactory>(); _scheduler.JobFactory = context.ServiceProvider.GetService<IJobFactory>();
_scheduler.Start();
if (options.StartDelay != null && options.StartDelay.Ticks > 0)
_scheduler.StartDelayed(options.StartDelay);
else
_scheduler.Start();
} }
public override void OnApplicationShutdown(ApplicationShutdownContext context) public override void OnApplicationShutdown(ApplicationShutdownContext context)

11
framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzPreOptions.cs

@ -1,14 +1,23 @@
using System.Collections.Specialized; using System;
using System.Collections.Specialized;
namespace Volo.Abp.Quartz namespace Volo.Abp.Quartz
{ {
public class AbpQuartzPreOptions public class AbpQuartzPreOptions
{ {
/// <summary>
/// The quartz configuration. Available properties can be found within Quartz.Impl.StdSchedulerFactory.
/// </summary>
public NameValueCollection Properties { get; set; } public NameValueCollection Properties { get; set; }
/// <summary>
/// How long Quartz should wait before starting. Default: 0.
/// </summary>
public TimeSpan StartDelay { get; set; }
public AbpQuartzPreOptions() public AbpQuartzPreOptions()
{ {
Properties = new NameValueCollection(); Properties = new NameValueCollection();
StartDelay = new TimeSpan(0);
} }
} }
} }

Loading…
Cancel
Save