完善作业列表页
This commit is contained in:
parent
fe9068b821
commit
58f4832e0b
|
@ -16,6 +16,7 @@ var set = AntSetting.Current;
|
|||
var scheduler = new Scheduler
|
||||
{
|
||||
ServiceProvider = services.BuildServiceProvider(),
|
||||
Log = XTrace.Log,
|
||||
};
|
||||
|
||||
scheduler.Join(set.Server, set.AppID, set.Secret, set.Debug);
|
||||
|
|
|
@ -854,6 +854,17 @@
|
|||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Enable</td>
|
||||
<td>启用</td>
|
||||
<td>Boolean</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>N</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Mode</td>
|
||||
<td>调度模式</td>
|
||||
|
@ -1096,17 +1107,6 @@
|
|||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Enable</td>
|
||||
<td>启用</td>
|
||||
<td>Boolean</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>N</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>LastStatus</td>
|
||||
<td>最后一次状态</td>
|
||||
|
|
|
@ -62,6 +62,14 @@ public partial class Job
|
|||
[BindColumn("DisplayName", "显示名", "")]
|
||||
public String DisplayName { get => _DisplayName; set { if (OnPropertyChanging("DisplayName", value)) { _DisplayName = value; OnPropertyChanged("DisplayName"); } } }
|
||||
|
||||
private Boolean _Enable;
|
||||
/// <summary>启用</summary>
|
||||
[DisplayName("启用")]
|
||||
[Description("启用")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("Enable", "启用", "")]
|
||||
public Boolean Enable { get => _Enable; set { if (OnPropertyChanging("Enable", value)) { _Enable = value; OnPropertyChanged("Enable"); } } }
|
||||
|
||||
private JobModes _Mode;
|
||||
/// <summary>调度模式。定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</summary>
|
||||
[DisplayName("调度模式")]
|
||||
|
@ -136,6 +144,7 @@ public partial class Job
|
|||
|
||||
private Int32 _MaxTask;
|
||||
/// <summary>并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度</summary>
|
||||
[Category("控制参数")]
|
||||
[DisplayName("并行度")]
|
||||
[Description("并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -144,6 +153,7 @@ public partial class Job
|
|||
|
||||
private Int32 _MaxError;
|
||||
/// <summary>最大错误。连续错误达到最大错误数时停止</summary>
|
||||
[Category("控制参数")]
|
||||
[DisplayName("最大错误")]
|
||||
[Description("最大错误。连续错误达到最大错误数时停止")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -152,6 +162,7 @@ public partial class Job
|
|||
|
||||
private Int32 _MaxRetry;
|
||||
/// <summary>最大重试。默认10次,超过该次数后将不再重试</summary>
|
||||
[Category("控制参数")]
|
||||
[DisplayName("最大重试")]
|
||||
[Description("最大重试。默认10次,超过该次数后将不再重试")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -160,6 +171,7 @@ public partial class Job
|
|||
|
||||
private Int32 _MaxTime;
|
||||
/// <summary>最大执行时间。默认600秒,超过该时间则认为执行器故障,将会把该任务分配给其它执行器</summary>
|
||||
[Category("控制参数")]
|
||||
[DisplayName("最大执行时间")]
|
||||
[Description("最大执行时间。默认600秒,超过该时间则认为执行器故障,将会把该任务分配给其它执行器")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -168,6 +180,7 @@ public partial class Job
|
|||
|
||||
private Int32 _MaxRetain;
|
||||
/// <summary>保留。任务项保留天数,超过天数的任务项将被删除,默认3天</summary>
|
||||
[Category("控制参数")]
|
||||
[DisplayName("保留")]
|
||||
[Description("保留。任务项保留天数,超过天数的任务项将被删除,默认3天")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -176,6 +189,7 @@ public partial class Job
|
|||
|
||||
private Int32 _MaxIdle;
|
||||
/// <summary>最大空闲时间。默认3600秒,超过该时间不更新则认为应用程序故障,系统触发告警</summary>
|
||||
[Category("控制参数")]
|
||||
[DisplayName("最大空闲时间")]
|
||||
[Description("最大空闲时间。默认3600秒,超过该时间不更新则认为应用程序故障,系统触发告警")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -184,6 +198,7 @@ public partial class Job
|
|||
|
||||
private Int32 _ErrorDelay;
|
||||
/// <summary>错误延迟。默认60秒,出错延迟后重新发放</summary>
|
||||
[Category("控制参数")]
|
||||
[DisplayName("错误延迟")]
|
||||
[Description("错误延迟。默认60秒,出错延迟后重新发放")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -192,6 +207,7 @@ public partial class Job
|
|||
|
||||
private DateTime _Deadline;
|
||||
/// <summary>最后期限。超过该时间后,任务将不再执行</summary>
|
||||
[Category("控制参数")]
|
||||
[DisplayName("最后期限")]
|
||||
[Description("最后期限。超过该时间后,任务将不再执行")]
|
||||
[DataObjectField(false, false, true, 0)]
|
||||
|
@ -200,6 +216,7 @@ public partial class Job
|
|||
|
||||
private Int64 _Total;
|
||||
/// <summary>总数。任务处理的总数据,例如数据调度抽取得到的总行数,定时调度默认1</summary>
|
||||
[Category("统计")]
|
||||
[DisplayName("总数")]
|
||||
[Description("总数。任务处理的总数据,例如数据调度抽取得到的总行数,定时调度默认1")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -208,6 +225,7 @@ public partial class Job
|
|||
|
||||
private Int64 _Success;
|
||||
/// <summary>成功。成功处理的数据,取自于Handler.Execute返回值,或者ProcessItem返回true的个数</summary>
|
||||
[Category("统计")]
|
||||
[DisplayName("成功")]
|
||||
[Description("成功。成功处理的数据,取自于Handler.Execute返回值,或者ProcessItem返回true的个数")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -216,6 +234,7 @@ public partial class Job
|
|||
|
||||
private Int32 _Error;
|
||||
/// <summary>错误</summary>
|
||||
[Category("统计")]
|
||||
[DisplayName("错误")]
|
||||
[Description("错误")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -224,6 +243,7 @@ public partial class Job
|
|||
|
||||
private Int32 _Times;
|
||||
/// <summary>次数</summary>
|
||||
[Category("统计")]
|
||||
[DisplayName("次数")]
|
||||
[Description("次数")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -232,22 +252,16 @@ public partial class Job
|
|||
|
||||
private Int32 _Speed;
|
||||
/// <summary>速度</summary>
|
||||
[Category("统计")]
|
||||
[DisplayName("速度")]
|
||||
[Description("速度")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("Speed", "速度", "")]
|
||||
public Int32 Speed { get => _Speed; set { if (OnPropertyChanging("Speed", value)) { _Speed = value; OnPropertyChanged("Speed"); } } }
|
||||
|
||||
private Boolean _Enable;
|
||||
/// <summary>启用</summary>
|
||||
[DisplayName("启用")]
|
||||
[Description("启用")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("Enable", "启用", "")]
|
||||
public Boolean Enable { get => _Enable; set { if (OnPropertyChanging("Enable", value)) { _Enable = value; OnPropertyChanged("Enable"); } } }
|
||||
|
||||
private JobStatus _LastStatus;
|
||||
/// <summary>最后一次状态</summary>
|
||||
[Category("统计")]
|
||||
[DisplayName("最后一次状态")]
|
||||
[Description("最后一次状态")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
|
@ -256,6 +270,7 @@ public partial class Job
|
|||
|
||||
private DateTime _LastTime;
|
||||
/// <summary>最后一次时间</summary>
|
||||
[Category("统计")]
|
||||
[DisplayName("最后一次时间")]
|
||||
[Description("最后一次时间")]
|
||||
[DataObjectField(false, false, true, 0)]
|
||||
|
@ -365,6 +380,7 @@ public partial class Job
|
|||
"Name" => _Name,
|
||||
"ClassName" => _ClassName,
|
||||
"DisplayName" => _DisplayName,
|
||||
"Enable" => _Enable,
|
||||
"Mode" => _Mode,
|
||||
"Cron" => _Cron,
|
||||
"Topic" => _Topic,
|
||||
|
@ -387,7 +403,6 @@ public partial class Job
|
|||
"Error" => _Error,
|
||||
"Times" => _Times,
|
||||
"Speed" => _Speed,
|
||||
"Enable" => _Enable,
|
||||
"LastStatus" => _LastStatus,
|
||||
"LastTime" => _LastTime,
|
||||
"Data" => _Data,
|
||||
|
@ -411,6 +426,7 @@ public partial class Job
|
|||
case "Name": _Name = Convert.ToString(value); break;
|
||||
case "ClassName": _ClassName = Convert.ToString(value); break;
|
||||
case "DisplayName": _DisplayName = Convert.ToString(value); break;
|
||||
case "Enable": _Enable = value.ToBoolean(); break;
|
||||
case "Mode": _Mode = (JobModes)value.ToInt(); break;
|
||||
case "Cron": _Cron = Convert.ToString(value); break;
|
||||
case "Topic": _Topic = Convert.ToString(value); break;
|
||||
|
@ -433,7 +449,6 @@ public partial class Job
|
|||
case "Error": _Error = value.ToInt(); break;
|
||||
case "Times": _Times = value.ToInt(); break;
|
||||
case "Speed": _Speed = value.ToInt(); break;
|
||||
case "Enable": _Enable = value.ToBoolean(); break;
|
||||
case "LastStatus": _LastStatus = (JobStatus)value.ToInt(); break;
|
||||
case "LastTime": _LastTime = value.ToDateTime(); break;
|
||||
case "Data": _Data = Convert.ToString(value); break;
|
||||
|
@ -482,6 +497,9 @@ public partial class Job
|
|||
/// <summary>显示名</summary>
|
||||
public static readonly Field DisplayName = FindByName("DisplayName");
|
||||
|
||||
/// <summary>启用</summary>
|
||||
public static readonly Field Enable = FindByName("Enable");
|
||||
|
||||
/// <summary>调度模式。定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</summary>
|
||||
public static readonly Field Mode = FindByName("Mode");
|
||||
|
||||
|
@ -548,9 +566,6 @@ public partial class Job
|
|||
/// <summary>速度</summary>
|
||||
public static readonly Field Speed = FindByName("Speed");
|
||||
|
||||
/// <summary>启用</summary>
|
||||
public static readonly Field Enable = FindByName("Enable");
|
||||
|
||||
/// <summary>最后一次状态</summary>
|
||||
public static readonly Field LastStatus = FindByName("LastStatus");
|
||||
|
||||
|
@ -608,6 +623,9 @@ public partial class Job
|
|||
/// <summary>显示名</summary>
|
||||
public const String DisplayName = "DisplayName";
|
||||
|
||||
/// <summary>启用</summary>
|
||||
public const String Enable = "Enable";
|
||||
|
||||
/// <summary>调度模式。定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑</summary>
|
||||
public const String Mode = "Mode";
|
||||
|
||||
|
@ -674,9 +692,6 @@ public partial class Job
|
|||
/// <summary>速度</summary>
|
||||
public const String Speed = "Speed";
|
||||
|
||||
/// <summary>启用</summary>
|
||||
public const String Enable = "Enable";
|
||||
|
||||
/// <summary>最后一次状态</summary>
|
||||
public const String LastStatus = "LastStatus";
|
||||
|
||||
|
|
|
@ -139,6 +139,7 @@
|
|||
<Column Name="Name" DataType="String" Master="True" Length="100" Description="名称" />
|
||||
<Column Name="ClassName" DataType="String" Length="100" Description="类名。支持该作业的处理器实现" />
|
||||
<Column Name="DisplayName" DataType="String" Description="显示名" />
|
||||
<Column Name="Enable" DataType="Boolean" Description="启用" />
|
||||
<Column Name="Mode" DataType="Int32" Description="调度模式。定时调度只要达到时间片开头就可以跑,数据调度要求达到时间片末尾才可以跑" Type="JobModes" />
|
||||
<Column Name="Cron" DataType="String" Description="执行频次。定时调度的Cron表达式" />
|
||||
<Column Name="Topic" DataType="String" Description="主题。消息调度时消费的主题" />
|
||||
|
@ -148,22 +149,21 @@
|
|||
<Column Name="Step" DataType="Int32" Description="步进。切分任务的时间区间,秒" />
|
||||
<Column Name="BatchSize" DataType="Int32" Description="批大小。数据调度每次抽取数据的分页大小,或消息调度每次处理的消息数,定时调度不适用" />
|
||||
<Column Name="Offset" DataType="Int32" ItemType="TimeSpan" Description="偏移。距离AntServer当前时间的秒数,避免因服务器之间的时间误差而错过部分数据,秒" />
|
||||
<Column Name="MaxTask" DataType="Int32" Description="并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度" />
|
||||
<Column Name="MaxError" DataType="Int32" Description="最大错误。连续错误达到最大错误数时停止" />
|
||||
<Column Name="MaxRetry" DataType="Int32" Description="最大重试。默认10次,超过该次数后将不再重试" />
|
||||
<Column Name="MaxTime" DataType="Int32" Description="最大执行时间。默认600秒,超过该时间则认为执行器故障,将会把该任务分配给其它执行器" />
|
||||
<Column Name="MaxRetain" DataType="Int32" Description="保留。任务项保留天数,超过天数的任务项将被删除,默认3天" />
|
||||
<Column Name="MaxIdle" DataType="Int32" Description="最大空闲时间。默认3600秒,超过该时间不更新则认为应用程序故障,系统触发告警" />
|
||||
<Column Name="ErrorDelay" DataType="Int32" Description="错误延迟。默认60秒,出错延迟后重新发放" />
|
||||
<Column Name="Deadline" DataType="DateTime" Description="最后期限。超过该时间后,任务将不再执行" />
|
||||
<Column Name="Total" DataType="Int64" Description="总数。任务处理的总数据,例如数据调度抽取得到的总行数,定时调度默认1" />
|
||||
<Column Name="Success" DataType="Int64" Description="成功。成功处理的数据,取自于Handler.Execute返回值,或者ProcessItem返回true的个数" />
|
||||
<Column Name="Error" DataType="Int32" Description="错误" />
|
||||
<Column Name="Times" DataType="Int32" Description="次数" />
|
||||
<Column Name="Speed" DataType="Int32" Description="速度" />
|
||||
<Column Name="Enable" DataType="Boolean" Description="启用" />
|
||||
<Column Name="LastStatus" DataType="Int32" Description="最后一次状态" Type="JobStatus" />
|
||||
<Column Name="LastTime" DataType="DateTime" Description="最后一次时间" />
|
||||
<Column Name="MaxTask" DataType="Int32" Description="并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度" Category="控制参数" />
|
||||
<Column Name="MaxError" DataType="Int32" Description="最大错误。连续错误达到最大错误数时停止" Category="控制参数" />
|
||||
<Column Name="MaxRetry" DataType="Int32" Description="最大重试。默认10次,超过该次数后将不再重试" Category="控制参数" />
|
||||
<Column Name="MaxTime" DataType="Int32" Description="最大执行时间。默认600秒,超过该时间则认为执行器故障,将会把该任务分配给其它执行器" Category="控制参数" />
|
||||
<Column Name="MaxRetain" DataType="Int32" Description="保留。任务项保留天数,超过天数的任务项将被删除,默认3天" Category="控制参数" />
|
||||
<Column Name="MaxIdle" DataType="Int32" Description="最大空闲时间。默认3600秒,超过该时间不更新则认为应用程序故障,系统触发告警" Category="控制参数" />
|
||||
<Column Name="ErrorDelay" DataType="Int32" Description="错误延迟。默认60秒,出错延迟后重新发放" Category="控制参数" />
|
||||
<Column Name="Deadline" DataType="DateTime" Description="最后期限。超过该时间后,任务将不再执行" Category="控制参数" />
|
||||
<Column Name="Total" DataType="Int64" Description="总数。任务处理的总数据,例如数据调度抽取得到的总行数,定时调度默认1" Category="统计" />
|
||||
<Column Name="Success" DataType="Int64" Description="成功。成功处理的数据,取自于Handler.Execute返回值,或者ProcessItem返回true的个数" Category="统计" />
|
||||
<Column Name="Error" DataType="Int32" Description="错误" Category="统计" />
|
||||
<Column Name="Times" DataType="Int32" Description="次数" Category="统计" />
|
||||
<Column Name="Speed" DataType="Int32" Description="速度" Category="统计" />
|
||||
<Column Name="LastStatus" DataType="Int32" Description="最后一次状态" Category="统计" Type="JobStatus" />
|
||||
<Column Name="LastTime" DataType="DateTime" Description="最后一次时间" Category="统计" />
|
||||
<Column Name="Data" DataType="String" Length="-1" Description="数据。Sql模板或C#模板" />
|
||||
<Column Name="CreateUserID" DataType="Int32" Description="创建人" Category="扩展" />
|
||||
<Column Name="CreateUser" DataType="String" Description="创建者" Category="扩展" />
|
||||
|
|
|
@ -25,7 +25,7 @@ public class AppController : AntEntityController<App>
|
|||
|
||||
{
|
||||
var df = ListFields.GetField("Name") as ListField;
|
||||
df.Url = "/Ant/Ant/Detail?id={ID}";
|
||||
df.Url = "/Ant/App/Detail?id={ID}";
|
||||
df.Target = "_blank";
|
||||
}
|
||||
{
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
using System.ComponentModel;
|
||||
using AntJob.Data;
|
||||
using AntJob.Data.Entity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NewLife;
|
||||
using NewLife.Cube;
|
||||
using NewLife.Cube.ViewModels;
|
||||
using NewLife.Data;
|
||||
using NewLife.Security;
|
||||
using NewLife.Web;
|
||||
using XCode.Membership;
|
||||
|
@ -19,8 +22,39 @@ public class JobController : AntEntityController<Job>
|
|||
{
|
||||
LogOnChange = true;
|
||||
|
||||
ListFields.RemoveField("ClassName", "Cron", "Topic", "MessageCount", "Time", "End");
|
||||
ListFields.RemoveField("MaxError", "MaxRetry", "MaxTime", "MaxRetain", "MaxIdle", "ErrorDelay", "Deadline");
|
||||
ListFields.RemoveField("Total", "Success", "Error", "Times", "Speed");
|
||||
ListFields.RemoveCreateField().RemoveUpdateField();
|
||||
ListFields.AddListField("UpdateTime");
|
||||
|
||||
{
|
||||
var df = ListFields.AddListField("Task", "UpdateUser");
|
||||
df.DisplayName = "任务";
|
||||
df.Url = "/Ant/JobTask?appid={AppID}&jobId={ID}";
|
||||
}
|
||||
{
|
||||
var df = ListFields.AddListField("Title", null, "Mode");
|
||||
df.Header = "执行频次";
|
||||
df.AddService(new MyTextField());
|
||||
}
|
||||
}
|
||||
|
||||
class MyTextField : ILinkExtend
|
||||
{
|
||||
public String Resolve(DataField field, IModel data)
|
||||
{
|
||||
var job = data as Job;
|
||||
return job.Mode switch
|
||||
{
|
||||
JobModes.Data => "Start=" + job.Time.ToFullString(""),
|
||||
JobModes.Time => job.Cron,
|
||||
JobModes.Message => job.Topic,
|
||||
JobModes.CSharp => "[C#]" + job.Time.ToString(""),
|
||||
JobModes.Sql => "[Sql]" + job.Time.ToString(""),
|
||||
_ => job.Time.ToString(""),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>搜索数据集</summary>
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
using AntJob.Handlers;
|
||||
using AntJob.Models;
|
||||
using NewLife;
|
||||
using NewLife.Log;
|
||||
using NewLife.Threading;
|
||||
|
||||
namespace AntJob.Providers;
|
||||
|
@ -48,6 +47,8 @@ public class NetworkJobProvider : JobProvider
|
|||
{
|
||||
var svr = Server;
|
||||
|
||||
WriteLog("正在连接调度中心:{0}", svr);
|
||||
|
||||
// 使用配置中心账号
|
||||
var ant = new AntClient(svr)
|
||||
{
|
||||
|
|
|
@ -6,47 +6,44 @@ using HisData;
|
|||
using NewLife.Security;
|
||||
using XCode;
|
||||
|
||||
namespace HisAgent
|
||||
namespace HisAgent;
|
||||
|
||||
[DisplayName("生产病人")]
|
||||
[Description("定时生成一批随机病人")]
|
||||
internal class BuildPatient : Handler
|
||||
{
|
||||
[DisplayName("生产病人")]
|
||||
[Description("定时生成一批随机病人")]
|
||||
internal class BuildPatient : Handler
|
||||
public BuildPatient()
|
||||
{
|
||||
public BuildPatient()
|
||||
{
|
||||
var job = Job;
|
||||
job.Time = DateTime.Today;
|
||||
job.Step = 15;
|
||||
}
|
||||
Job.Cron = "5 1/3 * * * ?";
|
||||
}
|
||||
|
||||
protected override Int32 Execute(JobContext ctx)
|
||||
{
|
||||
// 随机造几个病人
|
||||
var count = Rand.Next(1, 9);
|
||||
protected override Int32 Execute(JobContext ctx)
|
||||
{
|
||||
// 随机造几个病人
|
||||
var count = Rand.Next(1, 9);
|
||||
|
||||
var list = new List<ZYBH0>();
|
||||
for (var i = 0; i < count; i++)
|
||||
var list = new List<ZYBH0>();
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var time = DateTime.Now.AddSeconds(Rand.Next(-30 * 24 * 3600, 0));
|
||||
var time2 = time.AddSeconds(Rand.Next(3600, 10 * 24 * 3600));
|
||||
var pi = new ZYBH0
|
||||
{
|
||||
var time = DateTime.Now.AddSeconds(Rand.Next(-30 * 24 * 3600, 0));
|
||||
var time2 = time.AddSeconds(Rand.Next(3600, 10 * 24 * 3600));
|
||||
var pi = new ZYBH0
|
||||
{
|
||||
Bhid = Rand.Next(999999),
|
||||
XM = Rand.NextString(8),
|
||||
Ryrq = time,
|
||||
Cyrq = time2,
|
||||
Sfzh = Rand.NextString(18),
|
||||
FB = Rand.NextString(6),
|
||||
State = Rand.Next(8),
|
||||
Flag = Rand.Next(2),
|
||||
};
|
||||
Bhid = Rand.Next(999999),
|
||||
XM = Rand.NextString(8),
|
||||
Ryrq = time,
|
||||
Cyrq = time2,
|
||||
Sfzh = Rand.NextString(18),
|
||||
FB = Rand.NextString(6),
|
||||
State = Rand.Next(8),
|
||||
Flag = Rand.Next(2),
|
||||
};
|
||||
|
||||
list.Add(pi);
|
||||
}
|
||||
list.Insert(true);
|
||||
|
||||
// 成功处理数据量
|
||||
return count;
|
||||
list.Add(pi);
|
||||
}
|
||||
list.Insert(true);
|
||||
|
||||
// 成功处理数据量
|
||||
return count;
|
||||
}
|
||||
}
|
|
@ -6,48 +6,48 @@ using HisData;
|
|||
using NewLife.Security;
|
||||
using XCode;
|
||||
|
||||
namespace HisAgent
|
||||
namespace HisAgent;
|
||||
|
||||
[DisplayName("生产遗嘱")]
|
||||
[Description("根据病人生成其对应的遗嘱")]
|
||||
class BuildWill : DataHandler
|
||||
{
|
||||
[DisplayName("生产遗嘱")]
|
||||
[Description("根据病人生成其对应的遗嘱")]
|
||||
class BuildWill : DataHandler
|
||||
public BuildWill()
|
||||
{
|
||||
public BuildWill()
|
||||
var job = Job;
|
||||
job.Time = DateTime.Today;
|
||||
job.Step = 30;
|
||||
job.BatchSize = 1000;
|
||||
}
|
||||
|
||||
public override Boolean Start()
|
||||
{
|
||||
// 指定要抽取数据的实体类以及时间字段
|
||||
Factory = ZYBH0.Meta.Factory;
|
||||
Field = ZYBH0._.CreateTime;
|
||||
|
||||
return base.Start();
|
||||
}
|
||||
|
||||
protected override Boolean ProcessItem(JobContext ctx, IEntity entity)
|
||||
{
|
||||
var pi = entity as ZYBH0;
|
||||
|
||||
// 创建医嘱信息
|
||||
var will = new ZYBHYZ0
|
||||
{
|
||||
var job = Job;
|
||||
job.Time = DateTime.Today;
|
||||
job.Step = 30;
|
||||
}
|
||||
Bhid = pi.Bhid,
|
||||
Mgroupid = Rand.Next(9999),
|
||||
|
||||
public override Boolean Start()
|
||||
{
|
||||
// 指定要抽取数据的实体类以及时间字段
|
||||
Factory = ZYBH0.Meta.Factory;
|
||||
Field = ZYBH0._.CreateTime;
|
||||
Kyzrq = pi.Ryrq.AddHours(1),
|
||||
Tyzrq = pi.Cyrq.AddHours(-3),
|
||||
Kyzys = Rand.NextString(8),
|
||||
|
||||
return base.Start();
|
||||
}
|
||||
State = pi.State,
|
||||
};
|
||||
|
||||
protected override Boolean ProcessItem(JobContext ctx, IEntity entity)
|
||||
{
|
||||
var pi = entity as ZYBH0;
|
||||
will.Insert();
|
||||
|
||||
// 创建医嘱信息
|
||||
var will = new ZYBHYZ0
|
||||
{
|
||||
Bhid = pi.Bhid,
|
||||
Mgroupid = Rand.Next(9999),
|
||||
|
||||
Kyzrq = pi.Ryrq.AddHours(1),
|
||||
Tyzrq = pi.Cyrq.AddHours(-3),
|
||||
Kyzys = Rand.NextString(8),
|
||||
|
||||
State = pi.State,
|
||||
};
|
||||
|
||||
will.Insert();
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -10,10 +10,7 @@ internal class HelloJob : Handler
|
|||
{
|
||||
public HelloJob()
|
||||
{
|
||||
// 今天零点开始,每10秒一次
|
||||
var job = Job;
|
||||
job.Time = DateTime.Today;
|
||||
job.Step = 10;
|
||||
Job.Cron = "7/30 * * * * ?";
|
||||
}
|
||||
|
||||
protected override Int32 Execute(JobContext ctx)
|
||||
|
|
|
@ -4,6 +4,7 @@ using System.Threading.Tasks;
|
|||
using AntJob;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using NewLife;
|
||||
using NewLife.Log;
|
||||
|
||||
namespace HisAgent;
|
||||
|
||||
|
@ -22,12 +23,15 @@ public class JobHost : BackgroundService
|
|||
var scheduler = new Scheduler
|
||||
{
|
||||
ServiceProvider = _serviceProvider,
|
||||
Log = XTrace.Log,
|
||||
};
|
||||
|
||||
scheduler.Join(set.Server, set.AppID, set.Secret, set.Debug);
|
||||
|
||||
// 添加作业
|
||||
scheduler.AddHandler<HelloJob>();
|
||||
scheduler.AddHandler<BuildPatient>();
|
||||
scheduler.AddHandler<BuildWill>();
|
||||
|
||||
// 启动调度引擎,调度器内部多线程处理
|
||||
scheduler.Start();
|
||||
|
|
Loading…
Reference in New Issue