diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpBackgroundWorkersQuartzModule.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpBackgroundWorkersQuartzModule.cs index 9cfc748c4e..a47f8dac77 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpBackgroundWorkersQuartzModule.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpBackgroundWorkersQuartzModule.cs @@ -26,20 +26,20 @@ namespace Volo.Abp.BackgroundWorkers.Quartz public override void OnPreApplicationInitialization(ApplicationInitializationContext context) { - var options = context.ServiceProvider.GetService>().Value; + var options = context.ServiceProvider.GetRequiredService>().Value; if (!options.IsEnabled) { - var quartzOptions = context.ServiceProvider.GetService>().Value; - quartzOptions.StartSchedulerFactory = scheduler => Task.CompletedTask; + var quartzOptions = context.ServiceProvider.GetRequiredService>().Value; + quartzOptions.StartSchedulerFactory = _ => Task.CompletedTask; } } public override void OnApplicationInitialization(ApplicationInitializationContext context) { - var quartzBackgroundWorkerOptions = context.ServiceProvider.GetService>().Value; + var quartzBackgroundWorkerOptions = context.ServiceProvider.GetRequiredService>().Value; if (quartzBackgroundWorkerOptions.IsAutoRegisterEnabled) { - var backgroundWorkerManager = context.ServiceProvider.GetService(); + var backgroundWorkerManager = context.ServiceProvider.GetRequiredService(); var works = context.ServiceProvider.GetServices().Where(x=>x.AutoRegister); foreach (var work in works) diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerAdapter.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerAdapter.cs index 970beea3f0..0b75f389fe 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerAdapter.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerAdapter.cs @@ -57,7 +57,7 @@ namespace Volo.Abp.BackgroundWorkers.Quartz .Build(); } - public async override Task Execute(IJobExecutionContext context) + public override async Task Execute(IJobExecutionContext context) { var worker = (IBackgroundWorker) ServiceProvider.GetService(typeof(TWorker)); var workerContext = new PeriodicBackgroundWorkerContext(ServiceProvider); diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerManager.cs index d670c1db98..582a7dd520 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerManager.cs @@ -19,14 +19,17 @@ namespace Volo.Abp.BackgroundWorkers.Quartz public virtual async Task StartAsync(CancellationToken cancellationToken = default) { - await _scheduler.ResumeAll(cancellationToken); + if (_scheduler.IsStarted && _scheduler.InStandbyMode) + { + await _scheduler.Start(cancellationToken); + } } public virtual async Task StopAsync(CancellationToken cancellationToken = default) { - if (!_scheduler.IsShutdown) + if (_scheduler.IsStarted && !_scheduler.InStandbyMode) { - await _scheduler.PauseAll(cancellationToken); + await _scheduler.Standby(cancellationToken); } } diff --git a/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs b/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs index 2429f617d9..fc9ba26367 100644 --- a/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs +++ b/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs @@ -16,9 +16,6 @@ namespace Volo.Abp.Quartz { var options = context.Services.ExecutePreConfiguredActions(); - // TODO: Remove this once Pomelo update MySqlConnector to >= 1.0.0 : https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/pull/1103 - AdaptMysqlConnector(); - context.Services.AddQuartz(options.Properties, build => { // these are the defaults @@ -55,7 +52,7 @@ namespace Volo.Abp.Quartz context.Services.AddSingleton(serviceProvider => { - return AsyncHelper.RunSync(() => serviceProvider.GetService().GetScheduler()); + return AsyncHelper.RunSync(() => serviceProvider.GetRequiredService().GetScheduler()); }); Configure(quartzOptions => @@ -69,7 +66,7 @@ namespace Volo.Abp.Quartz { var options = context.ServiceProvider.GetRequiredService>().Value; - _scheduler = context.ServiceProvider.GetService(); + _scheduler = context.ServiceProvider.GetRequiredService(); AsyncHelper.RunSync(() => options.StartSchedulerFactory.Invoke(_scheduler)); } @@ -81,28 +78,5 @@ namespace Volo.Abp.Quartz AsyncHelper.RunSync(() => _scheduler.Shutdown()); } } - - private void AdaptMysqlConnector() - { - var mySqlAvailable = System.Type.GetType("MySql.Data.MySqlClient.MySqlConnection, MySqlConnector") != null; - if (mySqlAvailable) - { - // Overriding the default 'MySqlConnector' provider to use the old 'MySql.Data' namespace found in MySqlConnector < 1.0.0 - DbProvider.RegisterDbMetadata("MySqlConnector", new DbMetadata() - { - ProductName = "MySQL, MySqlConnector provider", - AssemblyName = "MySqlConnector", - ConnectionType = System.Type.GetType("MySql.Data.MySqlClient.MySqlConnection, MySqlConnector"), - CommandType = System.Type.GetType("MySql.Data.MySqlClient.MySqlCommand, MySqlConnector"), - ParameterType = System.Type.GetType("MySql.Data.MySqlClient.MySqlParameter, MySqlConnector"), - ParameterDbType = System.Type.GetType("MySql.Data.MySqlClient.MySqlDbType, MySqlConnector"), - ParameterDbTypePropertyName = "MySqlDbType", - ParameterNamePrefix = "?", - ExceptionType = System.Type.GetType("MySql.Data.MySqlClient.MySqlException, MySqlConnector"), - BindByName = true, - DbBinaryTypeName = "Blob" - }); - } - } } }