任务调度器

计划任务及调度器是由 QUARTZ.NET 实现的,可以支持集群部署,目前没有单独部署,而是随着 hmx 应用服务器一起部署了。
相关的帮助信息可以参考官方文档。
如何新增一个 JOB
在您的后端服务实现类库,新增一个 job 实现:(注意这里不应该有很多业务逻辑,应该调用 service 层)
csharp
/// <summary>
/// 磨削数据处理
/// </summary>
public class SyncTdm1030Job : ScopedBackgroundJobBase
{
public override async Task JobExecuteAsync()
{
using var locked = await OptimisticLockManager.UsingRedisLockAsync(new AcquireLockInput(nameof(SyncTdm1030Job)));
var strBuilder = new StringBuilder();
var datas = await Svc<IDM1030AppService>.Proxy.GetHandleTdm1030Data();
strBuilder.AppendLine($"获取到消息数量{datas.Count}");
foreach (var item in datas)
{
strBuilder.AppendLine($"{item.CRollerNo} ");
await Svc<IDM1030AppService>.Proxy.HandleTdm1030(item);
}
logger.LogInformation(strBuilder.ToString());
}
}继承 ScopedBackgroundJobBase,平台会在启动的时候扫描到这个类,然后将这个 job 类配置到后台调度器里面即可,参考以下画面。

特别需要注意的,后台多个应用服务器的情况,你可以通过配置启用任务调度器:
json
{
"AppSettings": {
"loglevel": "debug",
"backgroudJob": "enable"
}
...
}这个设计更多情况是用于本地开发调试的时候,不要让你的开发机作为了调度器启动了。