Browse Source

Update AbpQuartzModule.cs

pull/5094/head
liangshiwei 6 years ago
parent
commit
c535194fd1
  1. 74
      framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs

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

@ -1,6 +1,7 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Quartz; using Quartz;
using Quartz.Impl;
using Quartz.Impl.AdoJobStore.Common; using Quartz.Impl.AdoJobStore.Common;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.Threading; using Volo.Abp.Threading;
@ -15,37 +16,35 @@ namespace Volo.Abp.Quartz
{ {
var options = context.Services.ExecutePreConfiguredActions<AbpQuartzOptions>(); var options = context.Services.ExecutePreConfiguredActions<AbpQuartzOptions>();
// todo: Remove this once Pomelo update MySqlConnector to >= 1.0.0 : https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/pull/1103 // TODO: Remove this once Pomelo update MySqlConnector to >= 1.0.0 : https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/pull/1103
var mySqlAvailable = System.Type.GetType("MySql.Data.MySqlClient.MySqlConnection, MySqlConnector") != null; AdaptMysqlConnector();
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"
});
}
context.Services.AddQuartz(options.Properties, build => context.Services.AddQuartz(options.Properties, build =>
{ {
build.UseMicrosoftDependencyInjectionScopedJobFactory();
// these are the defaults // these are the defaults
build.UseSimpleTypeLoader(); if (options.Properties[StdSchedulerFactory.PropertySchedulerJobFactoryType] == null)
build.UseInMemoryStore();
build.UseDefaultThreadPool(tp =>
{ {
tp.MaxConcurrency = 10; build.UseMicrosoftDependencyInjectionScopedJobFactory();
}); }
if (options.Properties[StdSchedulerFactory.PropertySchedulerTypeLoadHelperType] == null)
{
build.UseSimpleTypeLoader();
}
if (options.Properties[StdSchedulerFactory.PropertyJobStoreType] == null)
{
build.UseInMemoryStore();
}
if (options.Properties[StdSchedulerFactory.PropertyThreadPoolType] == null)
{
build.UseDefaultThreadPool(tp =>
{
tp.MaxConcurrency = 10;
});
}
options.Configurator?.Invoke(build); options.Configurator?.Invoke(build);
}); });
@ -77,5 +76,28 @@ namespace Volo.Abp.Quartz
AsyncHelper.RunSync(() => _scheduler.Shutdown()); 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"
});
}
}
} }
} }

Loading…
Cancel
Save