新架构的作业任务测试通过
This commit is contained in:
parent
28225811ec
commit
2502d95717
|
@ -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());
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NewLife.Core" Version="10.10.2024.620-beta1127" />
|
||||
<PackageReference Include="NewLife.Remoting" Version="3.0.2024.624-beta0109" />
|
||||
<PackageReference Include="NewLife.Remoting" Version="3.0.2024.624" />
|
||||
<PackageReference Include="NewLife.Stardust" Version="2.9.2024.620-beta1617" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
@ -20,14 +20,14 @@ public class AntClient : ClientBase
|
|||
|
||||
#region 构造
|
||||
/// <summary>实例化</summary>
|
||||
public AntClient() => Prefix = "Ant/";
|
||||
public AntClient() => Prefix = "";
|
||||
|
||||
/// <summary>实例化</summary>
|
||||
/// <param name="setting"></param>
|
||||
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<IUpgradeInfo, UpgradeInfo>();
|
||||
}
|
||||
|
||||
Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : "Ant/";
|
||||
Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : "";
|
||||
|
||||
base.OnInit();
|
||||
}
|
||||
|
|
|
@ -54,13 +54,12 @@ public class Scheduler : DisposeBase
|
|||
|
||||
#region 核心方法
|
||||
/// <summary>加入调度中心,从注册中心获取地址,自动识别RPC/Http</summary>
|
||||
/// <param name="server"></param>
|
||||
/// <param name="appId"></param>
|
||||
/// <param name="secret"></param>
|
||||
/// <param name="debug"></param>
|
||||
/// <param name="set"></param>
|
||||
/// <returns></returns>
|
||||
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<IRegistry>();
|
||||
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;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
|
@ -9,10 +9,6 @@
|
|||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NewLife.Stardust.Extensions" Version="2.9.2024.422-beta0942" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\AntJob.Extensions\AntJob.Extensions.csproj" />
|
||||
<ProjectReference Include="..\..\AntJob\AntJob.csproj" />
|
||||
|
|
|
@ -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<HelloJob>();
|
||||
|
|
|
@ -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);
|
||||
|
||||
/// <summary></summary>
|
||||
/// <param name="args"></param>
|
||||
/// <returns></returns>
|
||||
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
||||
Host.CreateDefaultBuilder(args)
|
||||
.ConfigureServices((hostContext, services) => ConfigureServices(services));
|
||||
// 友好退出
|
||||
var host = services.BuildHost();
|
||||
|
||||
/// <summary></summary>
|
||||
/// <param name="hostBuilderContext"></param>
|
||||
/// <param name="services"></param>
|
||||
public static void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddStardust();
|
||||
host.Add<JobHost>();
|
||||
|
||||
// 添加后台调度服务
|
||||
services.AddHostedService<JobHost>();
|
||||
}
|
||||
}
|
||||
await host.RunAsync();
|
9
蚂蚁.sln
9
蚂蚁.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}
|
||||
|
|
Loading…
Reference in New Issue