集成测试通过,定时调度成功

This commit is contained in:
大石头 2024-04-22 20:30:38 +08:00
parent 6d0e927224
commit f9528b2ce3
9 changed files with 158 additions and 192 deletions

View File

@ -16,15 +16,6 @@ var set = AntSetting.Current;
var scheduler = new Scheduler
{
ServiceProvider = services.BuildServiceProvider(),
//// 使用分布式调度引擎替换默认的本地文件调度
//Provider = new NetworkJobProvider
//{
// Debug = set.Debug,
// Server = set.Server,
// AppID = set.AppID,
// Secret = set.Secret,
//}
};
scheduler.Join(set.Server, set.AppID, set.Secret, set.Debug);

View File

@ -1,46 +1,43 @@
using System;
namespace AntJob.Data;
namespace AntJob.Data
/// <summary>作业参数</summary>
public interface IJob
{
/// <summary>作业参数</summary>
public interface IJob
{
/// <summary>名称</summary>
String Name { get; set; }
/// <summary>名称</summary>
String Name { get; set; }
/// <summary>类名。支持该作业的处理器实现</summary>
String ClassName { get; set; }
/// <summary>类名。支持该作业的处理器实现</summary>
String ClassName { get; set; }
/// <summary>是否启用</summary>
Boolean Enable { get; set; }
/// <summary>是否启用</summary>
Boolean Enable { get; set; }
/// <summary>开始。大于等于该时间,定时作业和数据作业使用</summary>
DateTime Start { get; set; }
/// <summary>开始。大于等于该时间,定时作业和数据作业使用</summary>
DateTime Start { get; set; }
/// <summary>结束。小于该时间,数据作业使用</summary>
DateTime End { get; set; }
/// <summary>结束。小于该时间,数据作业使用</summary>
DateTime End { get; set; }
/// <summary>时间偏移。距离实时时间的秒数,部分业务不能跑到实时</summary>
Int32 Offset { get; set; }
/// <summary>时间偏移。距离实时时间的秒数,部分业务不能跑到实时</summary>
Int32 Offset { get; set; }
/// <summary>步进。最大区间大小,秒</summary>
Int32 Step { get; set; }
/// <summary>步进。最大区间大小,秒</summary>
Int32 Step { get; set; }
/// <summary>批大小</summary>
Int32 BatchSize { get; set; }
/// <summary>批大小</summary>
Int32 BatchSize { get; set; }
/// <summary>并行度。最大同时执行任务数</summary>
Int32 MaxTask { get; set; }
/// <summary>并行度。最大同时执行任务数</summary>
Int32 MaxTask { get; set; }
/// <summary>调度模式。定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</summary>
JobModes Mode { get; set; }
/// <summary>调度模式。定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</summary>
JobModes Mode { get; set; }
/// <summary>消息主题</summary>
String Topic { get; set; }
/// <summary>消息主题</summary>
String Topic { get; set; }
/// <summary>数据</summary>
String Data { get; set; }
}
/// <summary>数据</summary>
String Data { get; set; }
}
public partial class JobModel : IJob { }
}
public partial class JobModel : IJob { }

View File

@ -1,28 +1,25 @@
using System;
namespace AntJob.Data;
namespace AntJob.Data
/// <summary>邻居伙伴</summary>
public interface IPeer
{
/// <summary>邻居伙伴</summary>
public interface IPeer
{
/// <summary>实例。IP加端口唯一</summary>
String Instance { get; set; }
/// <summary>实例。IP加端口唯一</summary>
String Instance { get; set; }
/// <summary>客户端。IP加进程</summary>
String Client { get; set; }
/// <summary>客户端。IP加进程</summary>
String Client { get; set; }
/// <summary>名称。机器名称</summary>
String Machine { get; set; }
/// <summary>名称。机器名称</summary>
String Machine { get; set; }
/// <summary>版本。客户端</summary>
String Version { get; set; }
/// <summary>版本。客户端</summary>
String Version { get; set; }
/// <summary>创建时间</summary>
DateTime CreateTime { get; set; }
/// <summary>创建时间</summary>
DateTime CreateTime { get; set; }
/// <summary>更新时间</summary>
DateTime UpdateTime { get; set; }
}
/// <summary>更新时间</summary>
DateTime UpdateTime { get; set; }
}
public partial class PeerModel : IPeer { }
}
public partial class PeerModel : IPeer { }

View File

@ -1,74 +1,72 @@
using System;
using System.Xml.Serialization;
using System.Xml.Serialization;
namespace AntJob.Data
namespace AntJob.Data;
/// <summary>作业模型</summary>
/// <remarks>定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</remarks>
public partial class JobModel
{
/// <summary>作业模型</summary>
/// <remarks>定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</remarks>
public partial class JobModel
{
#region
/// <summary>名称</summary>
[XmlAttribute]
public String Name { get; set; }
#region
/// <summary>名称</summary>
[XmlAttribute]
public String Name { get; set; }
/// <summary>类名。支持该作业的处理器实现</summary>
[XmlAttribute]
public String ClassName { get; set; }
/// <summary>类名。支持该作业的处理器实现</summary>
[XmlAttribute]
public String ClassName { get; set; }
/// <summary>是否启用</summary>
[XmlAttribute]
public Boolean Enable { get; set; }
/// <summary>是否启用</summary>
[XmlAttribute]
public Boolean Enable { get; set; }
/// <summary>开始。大于等于</summary>
[XmlAttribute]
public DateTime Start { get; set; }
/// <summary>开始。大于等于</summary>
[XmlAttribute]
public DateTime Start { get; set; }
/// <summary>结束。小于</summary>
[XmlAttribute]
public DateTime End { get; set; }
/// <summary>结束。小于</summary>
[XmlAttribute]
public DateTime End { get; set; }
/// <summary>时间偏移。距离实时时间的秒数,部分业务不能跑到实时</summary>
[XmlAttribute]
public Int32 Offset { get; set; }
/// <summary>时间偏移。距离实时时间的秒数,部分业务不能跑到实时</summary>
[XmlAttribute]
public Int32 Offset { get; set; }
/// <summary>步进。最大区间大小,秒</summary>
[XmlAttribute]
public Int32 Step { get; set; }
/// <summary>步进。最大区间大小,秒</summary>
[XmlAttribute]
public Int32 Step { get; set; }
/// <summary>批大小</summary>
[XmlAttribute]
public Int32 BatchSize { get; set; } = 5000;
/// <summary>批大小</summary>
[XmlAttribute]
public Int32 BatchSize { get; set; } = 5000;
/// <summary>最大任务数</summary>
[XmlAttribute]
public Int32 MaxTask { get; set; }
/// <summary>最大任务数</summary>
[XmlAttribute]
public Int32 MaxTask { get; set; }
/// <summary>调度模式。定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</summary>
[XmlAttribute]
public JobModes Mode { get; set; }
/// <summary>调度模式。定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</summary>
[XmlAttribute]
public JobModes Mode { get; set; }
/// <summary>显示名</summary>
[XmlAttribute]
public String DisplayName { get; set; }
/// <summary>显示名</summary>
[XmlAttribute]
public String DisplayName { get; set; }
/// <summary>描述</summary>
[XmlAttribute]
public String Description { get; set; }
/// <summary>描述</summary>
[XmlAttribute]
public String Description { get; set; }
/// <summary>消息主题</summary>
[XmlAttribute]
public String Topic { get; set; }
/// <summary>消息主题</summary>
[XmlAttribute]
public String Topic { get; set; }
/// <summary>数据</summary>
[XmlAttribute]
public String Data { get; set; }
#endregion
/// <summary>数据</summary>
[XmlAttribute]
public String Data { get; set; }
#endregion
#region
/// <summary>已重载。</summary>
/// <returns></returns>
public override String ToString() => Name;
#endregion
}
#region
/// <summary>已重载。</summary>
/// <returns></returns>
public override String ToString() => Name;
#endregion
}

View File

@ -1,24 +1,23 @@
namespace AntJob.Data
namespace AntJob.Data;
/// <summary>作业状态</summary>
public enum JobStatus
{
/// <summary>作业状态</summary>
public enum JobStatus
{
/// <summary>就绪</summary>
= 0,
/// <summary>就绪</summary>
= 0,
/// <summary>抽取中</summary>
= 1,
/// <summary>抽取中</summary>
= 1,
/// <summary>处理中</summary>
= 2,
/// <summary>处理中</summary>
= 2,
/// <summary>错误</summary>
= 3,
/// <summary>错误</summary>
= 3,
/// <summary>已完成</summary>
= 4,
/// <summary>已完成</summary>
= 4,
/// <summary>已取消</summary>
= 5,
}
/// <summary>已取消</summary>
= 5,
}

View File

@ -1,26 +1,23 @@
using System;
namespace AntJob.Data;
namespace AntJob.Data
/// <summary>邻居伙伴</summary>
public partial class PeerModel
{
/// <summary>邻居伙伴</summary>
public partial class PeerModel
{
/// <summary>实例。IP加端口</summary>
public String Instance { get; set; }
/// <summary>实例。IP加端口</summary>
public String Instance { get; set; }
/// <summary>客户端。IP加进程</summary>
public String Client { get; set; }
/// <summary>客户端。IP加进程</summary>
public String Client { get; set; }
/// <summary>名称。机器名称</summary>
public String Machine { get; set; }
/// <summary>名称。机器名称</summary>
public String Machine { get; set; }
/// <summary>版本。客户端</summary>
public String Version { get; set; }
/// <summary>版本。客户端</summary>
public String Version { get; set; }
/// <summary>创建时间</summary>
public DateTime CreateTime { get; set; }
/// <summary>创建时间</summary>
public DateTime CreateTime { get; set; }
/// <summary>更新时间</summary>
public DateTime UpdateTime { get; set; }
}
/// <summary>更新时间</summary>
public DateTime UpdateTime { get; set; }
}

View File

@ -1,40 +1,37 @@
using System;
namespace AntJob.Data;
namespace AntJob.Data
/// <summary>任务结果</summary>
public partial class TaskResult : ITaskResult
{
/// <summary>任务结果</summary>
public partial class TaskResult : ITaskResult
{
#region
/// <summary>编号</summary>
public Int32 ID { get; set; }
#region
/// <summary>编号</summary>
public Int32 ID { get; set; }
/// <summary>总数</summary>
public Int32 Total { get; set; }
/// <summary>总数</summary>
public Int32 Total { get; set; }
/// <summary>成功</summary>
public Int32 Success { get; set; }
/// <summary>成功</summary>
public Int32 Success { get; set; }
/// <summary>耗时,秒</summary>
public Int32 Cost { get; set; }
/// <summary>耗时,秒</summary>
public Int32 Cost { get; set; }
/// <summary>错误</summary>
public Int32 Error { get; set; }
/// <summary>错误</summary>
public Int32 Error { get; set; }
/// <summary>次数</summary>
public Int32 Times { get; set; }
/// <summary>次数</summary>
public Int32 Times { get; set; }
/// <summary>速度</summary>
public Int32 Speed { get; set; }
/// <summary>速度</summary>
public Int32 Speed { get; set; }
/// <summary>状态</summary>
public JobStatus Status { get; set; }
/// <summary>状态</summary>
public JobStatus Status { get; set; }
/// <summary>最后键值</summary>
public String Key { get; set; }
/// <summary>最后键值</summary>
public String Key { get; set; }
/// <summary>消息内容。异常信息或其它任务消息</summary>
public String Message { get; set; }
#endregion
}
/// <summary>消息内容。异常信息或其它任务消息</summary>
public String Message { get; set; }
#endregion
}

View File

@ -146,6 +146,7 @@ public class Scheduler : DisposeBase
if (job != null && job.Mode == 0) job.Mode = handler.Mode;
handler.Job = job;
handler.Tracer = Tracer;
handler.Log = Log;
handler.Start();
}

View File

@ -2,7 +2,6 @@
using System.Threading;
using System.Threading.Tasks;
using AntJob;
using AntJob.Providers;
using Microsoft.Extensions.Hosting;
using NewLife;
@ -23,15 +22,6 @@ public class JobHost : BackgroundService
var scheduler = new Scheduler
{
ServiceProvider = _serviceProvider,
//// 使用分布式调度引擎替换默认的本地文件调度
//Provider = new NetworkJobProvider
//{
// Server = set.Server,
// AppID = set.AppID,
// Secret = set.Secret,
// Debug = false
//}
};
scheduler.Join(set.Server, set.AppID, set.Secret, set.Debug);
@ -39,7 +29,6 @@ public class JobHost : BackgroundService
// 添加作业
scheduler.AddHandler<HelloJob>();
// 启动调度引擎,调度器内部多线程处理
scheduler.Start();
_scheduler = scheduler;