From 6b47ae232dd539619f22d810459038b975d5c9c2 Mon Sep 17 00:00:00 2001 From: chenchun Date: Fri, 15 Nov 2024 18:17:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=8C=E6=88=90hangfire=E6=8E=A5?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Abp.Net8/Yi.Abp.sln | 7 +++++ ...ramework.BackgroundWorkers.Hangfire.csproj | 17 ++++++++++++ ...rameworkBackgroundWorkersHangfireModule.cs | 27 +++++++++++++++++++ .../YiHangfireConventionalRegistrar.cs | 2 +- .../Yi.Framework.Rbac.Application.csproj | 2 +- .../YiFrameworkRbacApplicationModule.cs | 3 +-- .../Yi.Abp.Application.csproj | 1 + .../YiAbpApplicationModule.cs | 4 ++- Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs | 18 ++----------- 9 files changed, 60 insertions(+), 21 deletions(-) create mode 100644 Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/Yi.Framework.BackgroundWorkers.Hangfire.csproj create mode 100644 Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/YiFrameworkBackgroundWorkersHangfireModule.cs rename Yi.Abp.Net8/{src/Yi.Abp.Web => framework/Yi.Framework.BackgroundWorkers.Hangfire}/YiHangfireConventionalRegistrar.cs (91%) diff --git a/Yi.Abp.Net8/Yi.Abp.sln b/Yi.Abp.Net8/Yi.Abp.sln index 372f0d95..59d4f292 100644 --- a/Yi.Abp.Net8/Yi.Abp.sln +++ b/Yi.Abp.Net8/Yi.Abp.sln @@ -156,6 +156,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Abp.Tool.HttpApi.Client" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.SettingManagement.Application", "module\setting-management\Yi.Framework.SettingManagement.Application\Yi.Framework.SettingManagement.Application.csproj", "{2A31D7CB-BDCC-4253-BA73-273B6B5E1956}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.BackgroundWorkers.Hangfire", "framework\Yi.Framework.BackgroundWorkers.Hangfire\Yi.Framework.BackgroundWorkers.Hangfire.csproj", "{862CA181-BEE6-4870-82D2-B662E527ED8C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -390,6 +392,10 @@ Global {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Debug|Any CPU.Build.0 = Debug|Any CPU {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Release|Any CPU.ActiveCfg = Release|Any CPU {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Release|Any CPU.Build.0 = Release|Any CPU + {862CA181-BEE6-4870-82D2-B662E527ED8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {862CA181-BEE6-4870-82D2-B662E527ED8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {862CA181-BEE6-4870-82D2-B662E527ED8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {862CA181-BEE6-4870-82D2-B662E527ED8C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -459,6 +465,7 @@ Global {4AE84CDE-2A47-4D68-8E93-86193F72E4E8} = {084CBEEC-5D37-4716-B9C7-D80D6960DFF4} {C8F97775-D903-4365-A4FF-3DA97E318CD2} = {084CBEEC-5D37-4716-B9C7-D80D6960DFF4} {2A31D7CB-BDCC-4253-BA73-273B6B5E1956} = {8C68059E-F3B1-4D28-A1C9-A5830F53E5D3} + {862CA181-BEE6-4870-82D2-B662E527ED8C} = {77B949E9-530E-45A5-9657-20F7D5C6875C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {23D6FBC9-C970-4641-BC1E-2AEA59F51C18} diff --git a/Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/Yi.Framework.BackgroundWorkers.Hangfire.csproj b/Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/Yi.Framework.BackgroundWorkers.Hangfire.csproj new file mode 100644 index 00000000..ee6c5ed7 --- /dev/null +++ b/Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/Yi.Framework.BackgroundWorkers.Hangfire.csproj @@ -0,0 +1,17 @@ + + + + + + net8.0 + enable + enable + + + + + + + + + diff --git a/Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/YiFrameworkBackgroundWorkersHangfireModule.cs b/Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/YiFrameworkBackgroundWorkersHangfireModule.cs new file mode 100644 index 00000000..b4aae0c3 --- /dev/null +++ b/Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/YiFrameworkBackgroundWorkersHangfireModule.cs @@ -0,0 +1,27 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.BackgroundWorkers; +using Volo.Abp.BackgroundWorkers.Hangfire; + +namespace Yi.Framework.BackgroundWorkers.Hangfire; + +[DependsOn(typeof(AbpBackgroundWorkersHangfireModule))] +public class YiFrameworkBackgroundWorkersHangfireModule:AbpModule +{ + public override void PreConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddConventionalRegistrar(new YiHangfireConventionalRegistrar()); + } + + public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context) + { + //定时任务自动注入,Abp默认只有在Quartz才实现 + var backgroundWorkerManager = context.ServiceProvider.GetRequiredService(); + var works = context.ServiceProvider.GetServices(); + + foreach (var work in works) + { + await backgroundWorkerManager.AddAsync(work); + } + + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/YiHangfireConventionalRegistrar.cs b/Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/YiHangfireConventionalRegistrar.cs similarity index 91% rename from Yi.Abp.Net8/src/Yi.Abp.Web/YiHangfireConventionalRegistrar.cs rename to Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/YiHangfireConventionalRegistrar.cs index 3a1582a2..f8f99bad 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/YiHangfireConventionalRegistrar.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.BackgroundWorkers.Hangfire/YiHangfireConventionalRegistrar.cs @@ -1,7 +1,7 @@ using Volo.Abp.BackgroundWorkers.Hangfire; using Volo.Abp.DependencyInjection; -namespace Yi.Abp.Web; +namespace Yi.Framework.BackgroundWorkers.Hangfire; public class YiHangfireConventionalRegistrar : DefaultConventionalRegistrar { diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Yi.Framework.Rbac.Application.csproj b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Yi.Framework.Rbac.Application.csproj index d7fcf3c9..81a3a0d9 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Yi.Framework.Rbac.Application.csproj +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Yi.Framework.Rbac.Application.csproj @@ -10,7 +10,6 @@ - @@ -19,6 +18,7 @@ + diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/YiFrameworkRbacApplicationModule.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/YiFrameworkRbacApplicationModule.cs index 0a5f1a59..c06f32cd 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/YiFrameworkRbacApplicationModule.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/YiFrameworkRbacApplicationModule.cs @@ -16,8 +16,7 @@ namespace Yi.Framework.Rbac.Application typeof(YiFrameworkRbacDomainModule), - typeof(YiFrameworkDddApplicationModule), - typeof(AbpBackgroundWorkersHangfireModule) + typeof(YiFrameworkDddApplicationModule) )] public class YiFrameworkRbacApplicationModule : AbpModule { diff --git a/Yi.Abp.Net8/src/Yi.Abp.Application/Yi.Abp.Application.csproj b/Yi.Abp.Net8/src/Yi.Abp.Application/Yi.Abp.Application.csproj index 0fba17dc..9b13a4f4 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Application/Yi.Abp.Application.csproj +++ b/Yi.Abp.Net8/src/Yi.Abp.Application/Yi.Abp.Application.csproj @@ -3,6 +3,7 @@ + diff --git a/Yi.Abp.Net8/src/Yi.Abp.Application/YiAbpApplicationModule.cs b/Yi.Abp.Net8/src/Yi.Abp.Application/YiAbpApplicationModule.cs index 87cafe95..2209e9a0 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Application/YiAbpApplicationModule.cs +++ b/Yi.Abp.Net8/src/Yi.Abp.Application/YiAbpApplicationModule.cs @@ -1,6 +1,7 @@ using Volo.Abp.SettingManagement; using Yi.Abp.Application.Contracts; using Yi.Abp.Domain; +using Yi.Framework.BackgroundWorkers.Hangfire; using Yi.Framework.Bbs.Application; using Yi.Framework.ChatHub.Application; using Yi.Framework.CodeGen.Application; @@ -23,7 +24,8 @@ namespace Yi.Abp.Application typeof(YiFrameworkCodeGenApplicationModule), typeof (YiFrameworkSettingManagementApplicationModule), - typeof(YiFrameworkDddApplicationModule) + typeof(YiFrameworkDddApplicationModule), + typeof(YiFrameworkBackgroundWorkersHangfireModule) )] public class YiAbpApplicationModule : AbpModule { diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs index 22723670..78415229 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs +++ b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs @@ -35,6 +35,7 @@ using Yi.Framework.AspNetCore.Authentication.OAuth.Gitee; using Yi.Framework.AspNetCore.Authentication.OAuth.QQ; using Yi.Framework.AspNetCore.Microsoft.AspNetCore.Builder; using Yi.Framework.AspNetCore.Microsoft.Extensions.DependencyInjection; +using Yi.Framework.BackgroundWorkers.Hangfire; using Yi.Framework.Bbs.Application; using Yi.Framework.Bbs.Application.Extensions; using Yi.Framework.ChatHub.Application; @@ -57,7 +58,7 @@ namespace Yi.Abp.Web typeof(AbpSwashbuckleModule), typeof(AbpAspNetCoreSerilogModule), typeof(AbpAuditingModule), - typeof(AbpBackgroundWorkersHangfireModule), + typeof(YiFrameworkBackgroundWorkersHangfireModule), typeof(AbpBackgroundJobsHangfireModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(YiFrameworkAspNetCoreModule), @@ -309,10 +310,6 @@ namespace Yi.Abp.Web return Task.CompletedTask; } - public override void PreConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddConventionalRegistrar(new YiHangfireConventionalRegistrar()); - } public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context) { @@ -368,17 +365,6 @@ namespace Yi.Abp.Web //日志记录 app.UseAbpSerilogEnrichers(); - - - //定时任务自动注入,Abp默认只有在Quartz才实现 - var backgroundWorkerManager = context.ServiceProvider.GetRequiredService(); - var works = context.ServiceProvider.GetServices(); - - foreach (var work in works) - { - await backgroundWorkerManager.AddAsync(work); - } - //Hangfire定时任务面板,可配置授权 app.UseAbpHangfireDashboard("/hangfire", options =>