From 2502d957173bdb6e5aae4ceb8b601fe75ba889aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=9F=B3=E5=A4=B4?= Date: Mon, 24 Jun 2024 14:25:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=9E=B6=E6=9E=84=E7=9A=84=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E4=BB=BB=E5=8A=A1=E6=B5=8B=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AntJob.Agent/Program.cs | 2 +- AntJob/AntJob.csproj | 2 +- AntJob/Providers/AntClient.cs | 6 ++-- AntJob/Scheduler.cs | 47 ++++++++++++++++---------------- Samples/HisAgent/HisAgent.csproj | 6 +--- Samples/HisAgent/JobHost.cs | 13 +++++---- Samples/HisAgent/Program.cs | 39 +++++++++----------------- 蚂蚁.sln | 9 +----- 8 files changed, 51 insertions(+), 73 deletions(-) diff --git a/AntJob.Agent/Program.cs b/AntJob.Agent/Program.cs index 43ca14f..0a88f67 100644 --- a/AntJob.Agent/Program.cs +++ b/AntJob.Agent/Program.cs @@ -19,7 +19,7 @@ var scheduler = new Scheduler Log = XTrace.Log, }; -scheduler.Join(set.Server, set.AppID, set.Secret, set.Debug); +scheduler.Join(set); // 添加作业处理器 //sc.Handlers.Add(new CSharpHandler()); diff --git a/AntJob/AntJob.csproj b/AntJob/AntJob.csproj index 68d23c3..c730b1b 100644 --- a/AntJob/AntJob.csproj +++ b/AntJob/AntJob.csproj @@ -46,7 +46,7 @@ - + diff --git a/AntJob/Providers/AntClient.cs b/AntJob/Providers/AntClient.cs index 57d0005..f77b71e 100644 --- a/AntJob/Providers/AntClient.cs +++ b/AntJob/Providers/AntClient.cs @@ -20,14 +20,14 @@ public class AntClient : ClientBase #region 构造 /// 实例化 - public AntClient() => Prefix = "Ant/"; + public AntClient() => Prefix = ""; /// 实例化 /// public AntClient(AntSetting setting) : base(setting) { _setting = setting; - Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : "Ant/"; + Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : ""; } #endregion @@ -49,7 +49,7 @@ public class AntClient : ClientBase //container.TryAddTransient(); } - Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : "Ant/"; + Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : ""; base.OnInit(); } diff --git a/AntJob/Scheduler.cs b/AntJob/Scheduler.cs index c930521..ae74b10 100644 --- a/AntJob/Scheduler.cs +++ b/AntJob/Scheduler.cs @@ -54,13 +54,12 @@ public class Scheduler : DisposeBase #region 核心方法 /// 加入调度中心,从注册中心获取地址,自动识别RPC/Http - /// - /// - /// - /// + /// /// - public IJobProvider Join(String server, String appId, String secret, Boolean debug = false) + public IJobProvider Join(AntSetting set) { + var server = set.Server; + var registry = ServiceProvider?.GetService(); if (registry != null) { @@ -69,31 +68,31 @@ public class Scheduler : DisposeBase } if (server.IsNullOrEmpty()) return null; + set.Server = server; // 根据地址决定用Http还是RPC var servers = server.Split(","); - if (servers.Any(e => e.StartsWithIgnoreCase("http://", "https://"))) - { - var http = new HttpJobProvider - { - Debug = debug, - Server = server, - AppId = appId, - Secret = secret, - }; + //if (servers.Any(e => e.StartsWithIgnoreCase("http://", "https://"))) + //{ + // var http = new HttpJobProvider + // { + // Debug = debug, + // Server = server, + // AppId = appId, + // Secret = secret, + // }; - // 如果有注册中心,则使用注册中心的服务发现 - if (registry != null) - { - //http.Client = registry.CreateForService("AntServer") as ApiHttpClient; - //http.Client.RoundRobin = false; - } + // // 如果有注册中心,则使用注册中心的服务发现 + // if (registry != null) + // { + // //http.Client = registry.CreateForService("AntServer") as ApiHttpClient; + // //http.Client.RoundRobin = false; + // } - Provider = http; - } - else + // Provider = http; + //} + //else { - var set = AntSetting.Current; var rpc = new NetworkJobProvider(set); Provider = rpc; diff --git a/Samples/HisAgent/HisAgent.csproj b/Samples/HisAgent/HisAgent.csproj index 4a33926..da4a4e6 100644 --- a/Samples/HisAgent/HisAgent.csproj +++ b/Samples/HisAgent/HisAgent.csproj @@ -1,4 +1,4 @@ - + Exe @@ -9,10 +9,6 @@ false - - - - diff --git a/Samples/HisAgent/JobHost.cs b/Samples/HisAgent/JobHost.cs index 6f51865..80a85d5 100644 --- a/Samples/HisAgent/JobHost.cs +++ b/Samples/HisAgent/JobHost.cs @@ -2,9 +2,9 @@ using System.Threading; using System.Threading.Tasks; using AntJob; -using Microsoft.Extensions.Hosting; using NewLife; using NewLife.Log; +using NewLife.Model; namespace HisAgent; @@ -12,13 +12,16 @@ public class JobHost : BackgroundService { private Scheduler _scheduler; private readonly IServiceProvider _serviceProvider; + private readonly AntSetting _setting; - public JobHost(IServiceProvider serviceProvider) => _serviceProvider = serviceProvider; + public JobHost(IServiceProvider serviceProvider, AntSetting setting) + { + _serviceProvider = serviceProvider; + _setting = setting; + } protected override Task ExecuteAsync(CancellationToken stoppingToken) { - var set = AntSetting.Current; - // 实例化调度器 var scheduler = new Scheduler { @@ -26,7 +29,7 @@ public class JobHost : BackgroundService Log = XTrace.Log, }; - scheduler.Join(set.Server, set.AppID, set.Secret, set.Debug); + scheduler.Join(_setting); // 添加作业 scheduler.AddHandler(); diff --git a/Samples/HisAgent/Program.cs b/Samples/HisAgent/Program.cs index 823b0cd..bceddee 100644 --- a/Samples/HisAgent/Program.cs +++ b/Samples/HisAgent/Program.cs @@ -1,33 +1,20 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; +using AntJob; +using HisAgent; using NewLife.Log; +using NewLife.Model; +using Stardust; -namespace HisAgent; +// 启用控制台日志,拦截所有异常 +XTrace.UseConsole(); -class Program -{ - static void Main(string[] args) - { - XTrace.UseConsole(); +var services = ObjectContainer.Current; +services.AddStardust(); - CreateHostBuilder(args).Build().Run(); - } +services.AddSingleton(AntSetting.Current); - /// - /// - /// - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureServices((hostContext, services) => ConfigureServices(services)); +// 友好退出 +var host = services.BuildHost(); - /// - /// - /// - public static void ConfigureServices(IServiceCollection services) - { - services.AddStardust(); +host.Add(); - // 添加后台调度服务 - services.AddHostedService(); - } -} \ No newline at end of file +await host.RunAsync(); \ No newline at end of file diff --git a/蚂蚁.sln b/蚂蚁.sln index c2c4ec0..f549049 100644 --- a/蚂蚁.sln +++ b/蚂蚁.sln @@ -5,6 +5,7 @@ VisualStudioVersion = 17.1.32328.378 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Others", "Others", "{0EA980BB-BB15-41A3-B75B-537BC42E985B}" ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig .github\workflows\publish-beta.yml = .github\workflows\publish-beta.yml .github\workflows\publish.yml = .github\workflows\publish.yml Readme.MD = Readme.MD @@ -25,11 +26,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AntJob.Extensions", "AntJob EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{E842807F-C45E-44DA-8AAE-7915C1EBF2A2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A1EF271C-AEA8-4EA3-A76F-906B4D4A9058}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - EndProjectSection -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AntJob.Agent", "AntJob.Agent\AntJob.Agent.csproj", "{0970FDBA-2331-4600-8DD5-A37B41AF989F}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisAgent", "Samples\HisAgent\HisAgent.csproj", "{E62006DC-E61B-42B0-A06B-ED5BF3F73D9E}" @@ -38,8 +34,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisData", "Samples\HisData\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisWeb", "Samples\HisWeb\HisWeb.csproj", "{153499A6-E73C-4C5A-8867-D29BD586A74B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTest", "UnitTest", "{26660D0A-8724-4434-88D1-5EE861A68309}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AntTest", "AntTest\AntTest.csproj", "{A13E58D2-A185-4945-98B7-B6B0951A19D2}" EndProject Global @@ -100,7 +94,6 @@ Global {E62006DC-E61B-42B0-A06B-ED5BF3F73D9E} = {E842807F-C45E-44DA-8AAE-7915C1EBF2A2} {38F8667D-70B7-4A90-8CA7-63738E925DFF} = {E842807F-C45E-44DA-8AAE-7915C1EBF2A2} {153499A6-E73C-4C5A-8867-D29BD586A74B} = {E842807F-C45E-44DA-8AAE-7915C1EBF2A2} - {A13E58D2-A185-4945-98B7-B6B0951A19D2} = {26660D0A-8724-4434-88D1-5EE861A68309} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9337283C-C795-479F-A2F1-C892EBE2490C}