新架构的作业任务测试通过
This commit is contained in:
parent
28225811ec
commit
2502d95717
|
@ -19,7 +19,7 @@ var scheduler = new Scheduler
|
||||||
Log = XTrace.Log,
|
Log = XTrace.Log,
|
||||||
};
|
};
|
||||||
|
|
||||||
scheduler.Join(set.Server, set.AppID, set.Secret, set.Debug);
|
scheduler.Join(set);
|
||||||
|
|
||||||
// 添加作业处理器
|
// 添加作业处理器
|
||||||
//sc.Handlers.Add(new CSharpHandler());
|
//sc.Handlers.Add(new CSharpHandler());
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NewLife.Core" Version="10.10.2024.620-beta1127" />
|
<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" />
|
<PackageReference Include="NewLife.Stardust" Version="2.9.2024.620-beta1617" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
@ -20,14 +20,14 @@ public class AntClient : ClientBase
|
||||||
|
|
||||||
#region 构造
|
#region 构造
|
||||||
/// <summary>实例化</summary>
|
/// <summary>实例化</summary>
|
||||||
public AntClient() => Prefix = "Ant/";
|
public AntClient() => Prefix = "";
|
||||||
|
|
||||||
/// <summary>实例化</summary>
|
/// <summary>实例化</summary>
|
||||||
/// <param name="setting"></param>
|
/// <param name="setting"></param>
|
||||||
public AntClient(AntSetting setting) : base(setting)
|
public AntClient(AntSetting setting) : base(setting)
|
||||||
{
|
{
|
||||||
_setting = setting;
|
_setting = setting;
|
||||||
Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : "Ant/";
|
Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : "";
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ public class AntClient : ClientBase
|
||||||
//container.TryAddTransient<IUpgradeInfo, UpgradeInfo>();
|
//container.TryAddTransient<IUpgradeInfo, UpgradeInfo>();
|
||||||
}
|
}
|
||||||
|
|
||||||
Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : "Ant/";
|
Prefix = _setting.Server.StartsWithIgnoreCase("http://", "https://") ? "AntJob/" : "";
|
||||||
|
|
||||||
base.OnInit();
|
base.OnInit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,13 +54,12 @@ public class Scheduler : DisposeBase
|
||||||
|
|
||||||
#region 核心方法
|
#region 核心方法
|
||||||
/// <summary>加入调度中心,从注册中心获取地址,自动识别RPC/Http</summary>
|
/// <summary>加入调度中心,从注册中心获取地址,自动识别RPC/Http</summary>
|
||||||
/// <param name="server"></param>
|
/// <param name="set"></param>
|
||||||
/// <param name="appId"></param>
|
|
||||||
/// <param name="secret"></param>
|
|
||||||
/// <param name="debug"></param>
|
|
||||||
/// <returns></returns>
|
/// <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>();
|
var registry = ServiceProvider?.GetService<IRegistry>();
|
||||||
if (registry != null)
|
if (registry != null)
|
||||||
{
|
{
|
||||||
|
@ -69,31 +68,31 @@ public class Scheduler : DisposeBase
|
||||||
}
|
}
|
||||||
|
|
||||||
if (server.IsNullOrEmpty()) return null;
|
if (server.IsNullOrEmpty()) return null;
|
||||||
|
set.Server = server;
|
||||||
|
|
||||||
// 根据地址决定用Http还是RPC
|
// 根据地址决定用Http还是RPC
|
||||||
var servers = server.Split(",");
|
var servers = server.Split(",");
|
||||||
if (servers.Any(e => e.StartsWithIgnoreCase("http://", "https://")))
|
//if (servers.Any(e => e.StartsWithIgnoreCase("http://", "https://")))
|
||||||
{
|
//{
|
||||||
var http = new HttpJobProvider
|
// var http = new HttpJobProvider
|
||||||
{
|
// {
|
||||||
Debug = debug,
|
// Debug = debug,
|
||||||
Server = server,
|
// Server = server,
|
||||||
AppId = appId,
|
// AppId = appId,
|
||||||
Secret = secret,
|
// Secret = secret,
|
||||||
};
|
// };
|
||||||
|
|
||||||
// 如果有注册中心,则使用注册中心的服务发现
|
// // 如果有注册中心,则使用注册中心的服务发现
|
||||||
if (registry != null)
|
// if (registry != null)
|
||||||
{
|
// {
|
||||||
//http.Client = registry.CreateForService("AntServer") as ApiHttpClient;
|
// //http.Client = registry.CreateForService("AntServer") as ApiHttpClient;
|
||||||
//http.Client.RoundRobin = false;
|
// //http.Client.RoundRobin = false;
|
||||||
}
|
// }
|
||||||
|
|
||||||
Provider = http;
|
// Provider = http;
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
{
|
{
|
||||||
var set = AntSetting.Current;
|
|
||||||
var rpc = new NetworkJobProvider(set);
|
var rpc = new NetworkJobProvider(set);
|
||||||
|
|
||||||
Provider = rpc;
|
Provider = rpc;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
|
@ -9,10 +9,6 @@
|
||||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="NewLife.Stardust.Extensions" Version="2.9.2024.422-beta0942" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\AntJob.Extensions\AntJob.Extensions.csproj" />
|
<ProjectReference Include="..\..\AntJob.Extensions\AntJob.Extensions.csproj" />
|
||||||
<ProjectReference Include="..\..\AntJob\AntJob.csproj" />
|
<ProjectReference Include="..\..\AntJob\AntJob.csproj" />
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using AntJob;
|
using AntJob;
|
||||||
using Microsoft.Extensions.Hosting;
|
|
||||||
using NewLife;
|
using NewLife;
|
||||||
using NewLife.Log;
|
using NewLife.Log;
|
||||||
|
using NewLife.Model;
|
||||||
|
|
||||||
namespace HisAgent;
|
namespace HisAgent;
|
||||||
|
|
||||||
|
@ -12,13 +12,16 @@ public class JobHost : BackgroundService
|
||||||
{
|
{
|
||||||
private Scheduler _scheduler;
|
private Scheduler _scheduler;
|
||||||
private readonly IServiceProvider _serviceProvider;
|
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)
|
protected override Task ExecuteAsync(CancellationToken stoppingToken)
|
||||||
{
|
{
|
||||||
var set = AntSetting.Current;
|
|
||||||
|
|
||||||
// 实例化调度器
|
// 实例化调度器
|
||||||
var scheduler = new Scheduler
|
var scheduler = new Scheduler
|
||||||
{
|
{
|
||||||
|
@ -26,7 +29,7 @@ public class JobHost : BackgroundService
|
||||||
Log = XTrace.Log,
|
Log = XTrace.Log,
|
||||||
};
|
};
|
||||||
|
|
||||||
scheduler.Join(set.Server, set.AppID, set.Secret, set.Debug);
|
scheduler.Join(_setting);
|
||||||
|
|
||||||
// 添加作业
|
// 添加作业
|
||||||
scheduler.AddHandler<HelloJob>();
|
scheduler.AddHandler<HelloJob>();
|
||||||
|
|
|
@ -1,33 +1,20 @@
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using AntJob;
|
||||||
using Microsoft.Extensions.Hosting;
|
using HisAgent;
|
||||||
using NewLife.Log;
|
using NewLife.Log;
|
||||||
|
using NewLife.Model;
|
||||||
|
using Stardust;
|
||||||
|
|
||||||
namespace HisAgent;
|
// 启用控制台日志,拦截所有异常
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static void Main(string[] args)
|
|
||||||
{
|
|
||||||
XTrace.UseConsole();
|
XTrace.UseConsole();
|
||||||
|
|
||||||
CreateHostBuilder(args).Build().Run();
|
var services = ObjectContainer.Current;
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary></summary>
|
|
||||||
/// <param name="args"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
|
||||||
Host.CreateDefaultBuilder(args)
|
|
||||||
.ConfigureServices((hostContext, services) => ConfigureServices(services));
|
|
||||||
|
|
||||||
/// <summary></summary>
|
|
||||||
/// <param name="hostBuilderContext"></param>
|
|
||||||
/// <param name="services"></param>
|
|
||||||
public static void ConfigureServices(IServiceCollection services)
|
|
||||||
{
|
|
||||||
services.AddStardust();
|
services.AddStardust();
|
||||||
|
|
||||||
// 添加后台调度服务
|
services.AddSingleton(AntSetting.Current);
|
||||||
services.AddHostedService<JobHost>();
|
|
||||||
}
|
// 友好退出
|
||||||
}
|
var host = services.BuildHost();
|
||||||
|
|
||||||
|
host.Add<JobHost>();
|
||||||
|
|
||||||
|
await host.RunAsync();
|
9
蚂蚁.sln
9
蚂蚁.sln
|
@ -5,6 +5,7 @@ VisualStudioVersion = 17.1.32328.378
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Others", "Others", "{0EA980BB-BB15-41A3-B75B-537BC42E985B}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Others", "Others", "{0EA980BB-BB15-41A3-B75B-537BC42E985B}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
.editorconfig = .editorconfig
|
||||||
.github\workflows\publish-beta.yml = .github\workflows\publish-beta.yml
|
.github\workflows\publish-beta.yml = .github\workflows\publish-beta.yml
|
||||||
.github\workflows\publish.yml = .github\workflows\publish.yml
|
.github\workflows\publish.yml = .github\workflows\publish.yml
|
||||||
Readme.MD = Readme.MD
|
Readme.MD = Readme.MD
|
||||||
|
@ -25,11 +26,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AntJob.Extensions", "AntJob
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{E842807F-C45E-44DA-8AAE-7915C1EBF2A2}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{E842807F-C45E-44DA-8AAE-7915C1EBF2A2}"
|
||||||
EndProject
|
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}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AntJob.Agent", "AntJob.Agent\AntJob.Agent.csproj", "{0970FDBA-2331-4600-8DD5-A37B41AF989F}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisAgent", "Samples\HisAgent\HisAgent.csproj", "{E62006DC-E61B-42B0-A06B-ED5BF3F73D9E}"
|
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
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisWeb", "Samples\HisWeb\HisWeb.csproj", "{153499A6-E73C-4C5A-8867-D29BD586A74B}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisWeb", "Samples\HisWeb\HisWeb.csproj", "{153499A6-E73C-4C5A-8867-D29BD586A74B}"
|
||||||
EndProject
|
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}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AntTest", "AntTest\AntTest.csproj", "{A13E58D2-A185-4945-98B7-B6B0951A19D2}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
|
@ -100,7 +94,6 @@ Global
|
||||||
{E62006DC-E61B-42B0-A06B-ED5BF3F73D9E} = {E842807F-C45E-44DA-8AAE-7915C1EBF2A2}
|
{E62006DC-E61B-42B0-A06B-ED5BF3F73D9E} = {E842807F-C45E-44DA-8AAE-7915C1EBF2A2}
|
||||||
{38F8667D-70B7-4A90-8CA7-63738E925DFF} = {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}
|
{153499A6-E73C-4C5A-8867-D29BD586A74B} = {E842807F-C45E-44DA-8AAE-7915C1EBF2A2}
|
||||||
{A13E58D2-A185-4945-98B7-B6B0951A19D2} = {26660D0A-8724-4434-88D1-5EE861A68309}
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {9337283C-C795-479F-A2F1-C892EBE2490C}
|
SolutionGuid = {9337283C-C795-479F-A2F1-C892EBE2490C}
|
||||||
|
|
Loading…
Reference in New Issue