From bb0a21d7f586013afa4bf789817e4cfaf939912d Mon Sep 17 00:00:00 2001 From: JianWeie Date: Thu, 10 Jun 2021 01:08:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0HangFire=E5=88=B0=E5=8D=95?= =?UTF-8?q?=E7=8B=AC=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CoreCms.Net.Auth/CoreCms.Net.Auth.csproj | 4 +- .../CoreCms.Net.CodeGenerator.csproj | 4 +- CoreCms.Net.Core/Config/HangFireSetup.cs | 64 +++++++++++++++++++ CoreCms.Net.Core/CoreCms.Net.Core.csproj | 7 +- CoreCms.Net.Loging/CoreCms.Net.Loging.csproj | 2 +- CoreCms.Net.Model/CoreCms.Net.Model.csproj | 2 +- .../CoreCms.Net.Repository.csproj | 2 +- CoreCms.Net.Task/CoreCms.Net.Task.csproj | 2 +- .../CoreCms.Net.Web.Admin.csproj | 8 +-- .../CoreCms.Net.Web.WebApi.csproj | 12 ++-- CoreCms.Net.Web.WebApi/Startup.cs | 14 ++-- 11 files changed, 92 insertions(+), 29 deletions(-) create mode 100644 CoreCms.Net.Core/Config/HangFireSetup.cs diff --git a/CoreCms.Net.Auth/CoreCms.Net.Auth.csproj b/CoreCms.Net.Auth/CoreCms.Net.Auth.csproj index ad7ed73..2124686 100644 --- a/CoreCms.Net.Auth/CoreCms.Net.Auth.csproj +++ b/CoreCms.Net.Auth/CoreCms.Net.Auth.csproj @@ -5,9 +5,9 @@ - + - + diff --git a/CoreCms.Net.CodeGenerator/CoreCms.Net.CodeGenerator.csproj b/CoreCms.Net.CodeGenerator/CoreCms.Net.CodeGenerator.csproj index af67950..28d98d3 100644 --- a/CoreCms.Net.CodeGenerator/CoreCms.Net.CodeGenerator.csproj +++ b/CoreCms.Net.CodeGenerator/CoreCms.Net.CodeGenerator.csproj @@ -18,8 +18,8 @@ - - + + diff --git a/CoreCms.Net.Core/Config/HangFireSetup.cs b/CoreCms.Net.Core/Config/HangFireSetup.cs new file mode 100644 index 0000000..a1bb39d --- /dev/null +++ b/CoreCms.Net.Core/Config/HangFireSetup.cs @@ -0,0 +1,64 @@ +/*********************************************************************** + * Project: CoreCms.Net * + * Web: https://CoreCms.Net * + * ProjectName: 核心内容管理系统 * + * Author: 大灰灰 * + * Email: JianWeie@163.com * + * Versions: 1.0 * + * CreateTime: 2020-02-03 22:49:41 + * NameSpace: CoreCms.Net.Framework + * FileName: Cors + * ClassDescription: + ***********************************************************************/ + + +using System; +using System.Transactions; +using CoreCms.Net.Configuration; +using CoreCms.Net.Utility.Extensions; +using Hangfire; +using Microsoft.Extensions.DependencyInjection; +using SqlSugar; + +namespace CoreCms.Net.Core.Config +{ + /// + /// 增加HangFire到单独配置 + /// + public static class HangFireSetup + { + public static void AddHangFireSetupSetup(this IServiceCollection services) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + //注册Hangfire定时任务 + var isEnabledRedis = AppSettingsConstVars.RedisConfigEnabled; + if (isEnabledRedis) + { + services.AddHangfire(x => x.UseRedisStorage(AppSettingsConstVars.RedisConfigConnectionString)); + } + else + { + string dbTypeString = AppSettingsConstVars.DbDbType; + if (dbTypeString == DbType.MySql.ToString()) + { + //services.AddHangfire(x => x.UseStorage(new MySqlStorage(AppSettingsConstVars.DbSqlConnection, new MySqlStorageOptions + //{ + // TransactionIsolationLevel = IsolationLevel.ReadCommitted, // 事务隔离级别。默认是读取已提交。 + // QueuePollInterval = TimeSpan.FromSeconds(15), //- 作业队列轮询间隔。默认值为15秒。 + // JobExpirationCheckInterval = TimeSpan.FromHours(1), //- 作业到期检查间隔(管理过期记录)。默认值为1小时。 + // CountersAggregateInterval = TimeSpan.FromMinutes(5), //- 聚合计数器的间隔。默认为5分钟。 + // PrepareSchemaIfNecessary = true, //- 如果设置为true,则创建数据库表。默认是true。 + // DashboardJobListLimit = 50000, //- 仪表板作业列表限制。默认值为50000。 + // TransactionTimeout = TimeSpan.FromMinutes(1), //- 交易超时。默认为1分钟。 + // TablesPrefix = "Hangfire" //- 数据库中表的前缀。默认为none + //}))); + } + else if (dbTypeString == DbType.SqlServer.ToString()) + { + services.AddHangfire(x => x.UseSqlServerStorage(AppSettingsConstVars.DbSqlConnection)); + } + } + } + } +} diff --git a/CoreCms.Net.Core/CoreCms.Net.Core.csproj b/CoreCms.Net.Core/CoreCms.Net.Core.csproj index 9ad73a8..7dd3855 100644 --- a/CoreCms.Net.Core/CoreCms.Net.Core.csproj +++ b/CoreCms.Net.Core/CoreCms.Net.Core.csproj @@ -14,12 +14,17 @@ + + + + + - + diff --git a/CoreCms.Net.Loging/CoreCms.Net.Loging.csproj b/CoreCms.Net.Loging/CoreCms.Net.Loging.csproj index c233c35..703a8c3 100644 --- a/CoreCms.Net.Loging/CoreCms.Net.Loging.csproj +++ b/CoreCms.Net.Loging/CoreCms.Net.Loging.csproj @@ -7,7 +7,7 @@ - + diff --git a/CoreCms.Net.Model/CoreCms.Net.Model.csproj b/CoreCms.Net.Model/CoreCms.Net.Model.csproj index 5ef7b7c..9876338 100644 --- a/CoreCms.Net.Model/CoreCms.Net.Model.csproj +++ b/CoreCms.Net.Model/CoreCms.Net.Model.csproj @@ -5,7 +5,7 @@ - + diff --git a/CoreCms.Net.Repository/CoreCms.Net.Repository.csproj b/CoreCms.Net.Repository/CoreCms.Net.Repository.csproj index 632091e..8136a52 100644 --- a/CoreCms.Net.Repository/CoreCms.Net.Repository.csproj +++ b/CoreCms.Net.Repository/CoreCms.Net.Repository.csproj @@ -5,7 +5,7 @@ - + diff --git a/CoreCms.Net.Task/CoreCms.Net.Task.csproj b/CoreCms.Net.Task/CoreCms.Net.Task.csproj index f217495..8be71c4 100644 --- a/CoreCms.Net.Task/CoreCms.Net.Task.csproj +++ b/CoreCms.Net.Task/CoreCms.Net.Task.csproj @@ -5,7 +5,7 @@ - + diff --git a/CoreCms.Net.Web.Admin/CoreCms.Net.Web.Admin.csproj b/CoreCms.Net.Web.Admin/CoreCms.Net.Web.Admin.csproj index a826e19..b03d66e 100644 --- a/CoreCms.Net.Web.Admin/CoreCms.Net.Web.Admin.csproj +++ b/CoreCms.Net.Web.Admin/CoreCms.Net.Web.Admin.csproj @@ -55,16 +55,16 @@ - - + + - + - + diff --git a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj index 16347f4..5bef80e 100644 --- a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj +++ b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj @@ -44,18 +44,18 @@ - - - + + + - - + + - + diff --git a/CoreCms.Net.Web.WebApi/Startup.cs b/CoreCms.Net.Web.WebApi/Startup.cs index ebd5e4f..e72e3b9 100644 --- a/CoreCms.Net.Web.WebApi/Startup.cs +++ b/CoreCms.Net.Web.WebApi/Startup.cs @@ -116,6 +116,8 @@ namespace CoreCms.Net.Web.WebApi //ÅäÖÃÒ×ÁªÔƴòӡ»ú services.AddYiLianYunSetup(); + //ע²áHangfire¶¨ʱÈÎÎñ + services.AddHangFireSetupSetup(); //ÊÚȨ֧³ÖעÈë services.AddAuthorizationSetupForClient(); @@ -149,16 +151,8 @@ namespace CoreCms.Net.Web.WebApi p.SerializerSettings.DateFormatString = "yyyy/MM/dd HH:mm:ss"; }); - //ע²áHangfire¶¨ʱÈÎÎñ - var isEnabledRedis = AppSettingsConstVars.RedisConfigEnabled; - if (isEnabledRedis) - { - services.AddHangfire(x => x.UseRedisStorage(AppSettingsConstVars.RedisConfigConnectionString)); - } - else - { - services.AddHangfire(x => x.UseSqlServerStorage(AppSettingsConstVars.DbSqlConnection)); - } + + } ///