不需要动态步进,只会增加复杂度,不到每天上亿级别的数据,动态步进意义不大,还不如用固定步进硬抗过去
This commit is contained in:
parent
230f51aca0
commit
00bf09cfa2
|
@ -51,8 +51,8 @@ namespace AntJob.Data.Entity
|
|||
}
|
||||
|
||||
// 截断错误信息,避免过长
|
||||
var len = _.Description.Length;
|
||||
if (!Description.IsNullOrEmpty() && len > 0 && Description.Length > len) Description = Description.Substring(0, len);
|
||||
var len = _.Remark.Length;
|
||||
if (!Remark.IsNullOrEmpty() && len > 0 && Remark.Length > len) Remark = Remark.Substring(0, len);
|
||||
|
||||
var app = App;
|
||||
if (isNew && app != null)
|
||||
|
|
|
@ -81,59 +81,35 @@ namespace AntJob.Data.Entity
|
|||
public Int32 MessageCount { get { return _MessageCount; } set { if (OnPropertyChanging(__.MessageCount, value)) { _MessageCount = value; OnPropertyChanged(__.MessageCount); } } }
|
||||
|
||||
private DateTime _Start;
|
||||
/// <summary>开始。大于等于</summary>
|
||||
/// <summary>开始。大于等于,下一个任务的起点</summary>
|
||||
[DisplayName("开始")]
|
||||
[Description("开始。大于等于")]
|
||||
[Description("开始。大于等于,下一个任务的起点")]
|
||||
[DataObjectField(false, false, true, 0)]
|
||||
[BindColumn("Start", "开始。大于等于", "")]
|
||||
[BindColumn("Start", "开始。大于等于,下一个任务的起点", "")]
|
||||
public DateTime Start { get { return _Start; } set { if (OnPropertyChanging(__.Start, value)) { _Start = value; OnPropertyChanged(__.Start); } } }
|
||||
|
||||
private DateTime _End;
|
||||
/// <summary>结束。小于,不等于</summary>
|
||||
/// <summary>结束。小于不等于,默认空表示无止境</summary>
|
||||
[DisplayName("结束")]
|
||||
[Description("结束。小于,不等于")]
|
||||
[Description("结束。小于不等于,默认空表示无止境")]
|
||||
[DataObjectField(false, false, true, 0)]
|
||||
[BindColumn("End", "结束。小于,不等于", "")]
|
||||
[BindColumn("End", "结束。小于不等于,默认空表示无止境", "")]
|
||||
public DateTime End { get { return _End; } set { if (OnPropertyChanging(__.End, value)) { _End = value; OnPropertyChanged(__.End); } } }
|
||||
|
||||
private Int32 _Step;
|
||||
/// <summary>步进。最大区间大小,秒</summary>
|
||||
/// <summary>步进。切分任务的时间区间,秒</summary>
|
||||
[DisplayName("步进")]
|
||||
[Description("步进。最大区间大小,秒")]
|
||||
[Description("步进。切分任务的时间区间,秒")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("Step", "步进。最大区间大小,秒", "")]
|
||||
[BindColumn("Step", "步进。切分任务的时间区间,秒", "")]
|
||||
public Int32 Step { get { return _Step; } set { if (OnPropertyChanging(__.Step, value)) { _Step = value; OnPropertyChanged(__.Step); } } }
|
||||
|
||||
private Int32 _MinStep;
|
||||
/// <summary>最小步进。默认5秒</summary>
|
||||
[DisplayName("最小步进")]
|
||||
[Description("最小步进。默认5秒")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("MinStep", "最小步进。默认5秒", "")]
|
||||
public Int32 MinStep { get { return _MinStep; } set { if (OnPropertyChanging(__.MinStep, value)) { _MinStep = value; OnPropertyChanged(__.MinStep); } } }
|
||||
|
||||
private Int32 _MaxStep;
|
||||
/// <summary>最大步进。默认3600秒</summary>
|
||||
[DisplayName("最大步进")]
|
||||
[Description("最大步进。默认3600秒")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("MaxStep", "最大步进。默认3600秒", "")]
|
||||
public Int32 MaxStep { get { return _MaxStep; } set { if (OnPropertyChanging(__.MaxStep, value)) { _MaxStep = value; OnPropertyChanged(__.MaxStep); } } }
|
||||
|
||||
private Int32 _StepRate;
|
||||
/// <summary>步进率。动态调节步进时,不能超过该比率,百分位,默认100%</summary>
|
||||
[DisplayName("步进率")]
|
||||
[Description("步进率。动态调节步进时,不能超过该比率,百分位,默认100%")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("StepRate", "步进率。动态调节步进时,不能超过该比率,百分位,默认100%", "")]
|
||||
public Int32 StepRate { get { return _StepRate; } set { if (OnPropertyChanging(__.StepRate, value)) { _StepRate = value; OnPropertyChanged(__.StepRate); } } }
|
||||
|
||||
private Int32 _BatchSize;
|
||||
/// <summary>批大小</summary>
|
||||
/// <summary>批大小。在任务时间区间内分页处理,或者每个任务的消息数</summary>
|
||||
[DisplayName("批大小")]
|
||||
[Description("批大小")]
|
||||
[Description("批大小。在任务时间区间内分页处理,或者每个任务的消息数")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("BatchSize", "批大小", "")]
|
||||
[BindColumn("BatchSize", "批大小。在任务时间区间内分页处理,或者每个任务的消息数", "")]
|
||||
public Int32 BatchSize { get { return _BatchSize; } set { if (OnPropertyChanging(__.BatchSize, value)) { _BatchSize = value; OnPropertyChanged(__.BatchSize); } } }
|
||||
|
||||
private Int32 _Offset;
|
||||
|
@ -248,20 +224,20 @@ namespace AntJob.Data.Entity
|
|||
[BindColumn("Enable", "启用", "")]
|
||||
public Boolean Enable { get { return _Enable; } set { if (OnPropertyChanging(__.Enable, value)) { _Enable = value; OnPropertyChanged(__.Enable); } } }
|
||||
|
||||
private String _Description;
|
||||
private String _Remark;
|
||||
/// <summary>内容</summary>
|
||||
[DisplayName("内容")]
|
||||
[Description("内容")]
|
||||
[DataObjectField(false, false, true, 2000)]
|
||||
[BindColumn("Message", "内容", "")]
|
||||
public String Description { get { return _Description; } set { if (OnPropertyChanging(__.Description, value)) { _Description = value; OnPropertyChanged(__.Description); } } }
|
||||
[BindColumn("Remark", "内容", "")]
|
||||
public String Remark { get { return _Remark; } set { if (OnPropertyChanging(__.Remark, value)) { _Remark = value; OnPropertyChanged(__.Remark); } } }
|
||||
|
||||
private Int32 _CreateUserID;
|
||||
/// <summary>创建者</summary>
|
||||
[DisplayName("创建者")]
|
||||
[Description("创建者")]
|
||||
/// <summary>创建人</summary>
|
||||
[DisplayName("创建人")]
|
||||
[Description("创建人")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("CreateUserID", "创建者", "")]
|
||||
[BindColumn("CreateUserID", "创建人", "")]
|
||||
public Int32 CreateUserID { get { return _CreateUserID; } set { if (OnPropertyChanging(__.CreateUserID, value)) { _CreateUserID = value; OnPropertyChanged(__.CreateUserID); } } }
|
||||
|
||||
private String _CreateUser;
|
||||
|
@ -289,11 +265,11 @@ namespace AntJob.Data.Entity
|
|||
public String CreateIP { get { return _CreateIP; } set { if (OnPropertyChanging(__.CreateIP, value)) { _CreateIP = value; OnPropertyChanged(__.CreateIP); } } }
|
||||
|
||||
private Int32 _UpdateUserID;
|
||||
/// <summary>更新者</summary>
|
||||
[DisplayName("更新者")]
|
||||
[Description("更新者")]
|
||||
/// <summary>更新人</summary>
|
||||
[DisplayName("更新人")]
|
||||
[Description("更新人")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("UpdateUserID", "更新者", "")]
|
||||
[BindColumn("UpdateUserID", "更新人", "")]
|
||||
public Int32 UpdateUserID { get { return _UpdateUserID; } set { if (OnPropertyChanging(__.UpdateUserID, value)) { _UpdateUserID = value; OnPropertyChanged(__.UpdateUserID); } } }
|
||||
|
||||
private String _UpdateUser;
|
||||
|
@ -342,9 +318,6 @@ namespace AntJob.Data.Entity
|
|||
case __.Start : return _Start;
|
||||
case __.End : return _End;
|
||||
case __.Step : return _Step;
|
||||
case __.MinStep : return _MinStep;
|
||||
case __.MaxStep : return _MaxStep;
|
||||
case __.StepRate : return _StepRate;
|
||||
case __.BatchSize : return _BatchSize;
|
||||
case __.Offset : return _Offset;
|
||||
case __.MaxTask : return _MaxTask;
|
||||
|
@ -360,7 +333,7 @@ namespace AntJob.Data.Entity
|
|||
case __.Times : return _Times;
|
||||
case __.Speed : return _Speed;
|
||||
case __.Enable : return _Enable;
|
||||
case __.Description : return _Description;
|
||||
case __.Remark : return _Remark;
|
||||
case __.CreateUserID : return _CreateUserID;
|
||||
case __.CreateUser : return _CreateUser;
|
||||
case __.CreateTime : return _CreateTime;
|
||||
|
@ -387,9 +360,6 @@ namespace AntJob.Data.Entity
|
|||
case __.Start : _Start = value.ToDateTime(); break;
|
||||
case __.End : _End = value.ToDateTime(); break;
|
||||
case __.Step : _Step = value.ToInt(); break;
|
||||
case __.MinStep : _MinStep = value.ToInt(); break;
|
||||
case __.MaxStep : _MaxStep = value.ToInt(); break;
|
||||
case __.StepRate : _StepRate = value.ToInt(); break;
|
||||
case __.BatchSize : _BatchSize = value.ToInt(); break;
|
||||
case __.Offset : _Offset = value.ToInt(); break;
|
||||
case __.MaxTask : _MaxTask = value.ToInt(); break;
|
||||
|
@ -405,7 +375,7 @@ namespace AntJob.Data.Entity
|
|||
case __.Times : _Times = value.ToInt(); break;
|
||||
case __.Speed : _Speed = value.ToInt(); break;
|
||||
case __.Enable : _Enable = value.ToBoolean(); break;
|
||||
case __.Description : _Description = Convert.ToString(value); break;
|
||||
case __.Remark : _Remark = Convert.ToString(value); break;
|
||||
case __.CreateUserID : _CreateUserID = value.ToInt(); break;
|
||||
case __.CreateUser : _CreateUser = Convert.ToString(value); break;
|
||||
case __.CreateTime : _CreateTime = value.ToDateTime(); break;
|
||||
|
@ -448,25 +418,16 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>消息数</summary>
|
||||
public static readonly Field MessageCount = FindByName(__.MessageCount);
|
||||
|
||||
/// <summary>开始。大于等于</summary>
|
||||
/// <summary>开始。大于等于,下一个任务的起点</summary>
|
||||
public static readonly Field Start = FindByName(__.Start);
|
||||
|
||||
/// <summary>结束。小于,不等于</summary>
|
||||
/// <summary>结束。小于不等于,默认空表示无止境</summary>
|
||||
public static readonly Field End = FindByName(__.End);
|
||||
|
||||
/// <summary>步进。最大区间大小,秒</summary>
|
||||
/// <summary>步进。切分任务的时间区间,秒</summary>
|
||||
public static readonly Field Step = FindByName(__.Step);
|
||||
|
||||
/// <summary>最小步进。默认5秒</summary>
|
||||
public static readonly Field MinStep = FindByName(__.MinStep);
|
||||
|
||||
/// <summary>最大步进。默认3600秒</summary>
|
||||
public static readonly Field MaxStep = FindByName(__.MaxStep);
|
||||
|
||||
/// <summary>步进率。动态调节步进时,不能超过该比率,百分位,默认100%</summary>
|
||||
public static readonly Field StepRate = FindByName(__.StepRate);
|
||||
|
||||
/// <summary>批大小</summary>
|
||||
/// <summary>批大小。在任务时间区间内分页处理,或者每个任务的消息数</summary>
|
||||
public static readonly Field BatchSize = FindByName(__.BatchSize);
|
||||
|
||||
/// <summary>偏移。距离实时时间的秒数,部分业务不能跑到实时,秒</summary>
|
||||
|
@ -512,9 +473,9 @@ namespace AntJob.Data.Entity
|
|||
public static readonly Field Enable = FindByName(__.Enable);
|
||||
|
||||
/// <summary>内容</summary>
|
||||
public static readonly Field Description = FindByName(__.Description);
|
||||
public static readonly Field Remark = FindByName(__.Remark);
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
public static readonly Field CreateUserID = FindByName(__.CreateUserID);
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
|
@ -526,7 +487,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
public static readonly Field CreateIP = FindByName(__.CreateIP);
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
public static readonly Field UpdateUserID = FindByName(__.UpdateUserID);
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
|
@ -568,25 +529,16 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>消息数</summary>
|
||||
public const String MessageCount = "MessageCount";
|
||||
|
||||
/// <summary>开始。大于等于</summary>
|
||||
/// <summary>开始。大于等于,下一个任务的起点</summary>
|
||||
public const String Start = "Start";
|
||||
|
||||
/// <summary>结束。小于,不等于</summary>
|
||||
/// <summary>结束。小于不等于,默认空表示无止境</summary>
|
||||
public const String End = "End";
|
||||
|
||||
/// <summary>步进。最大区间大小,秒</summary>
|
||||
/// <summary>步进。切分任务的时间区间,秒</summary>
|
||||
public const String Step = "Step";
|
||||
|
||||
/// <summary>最小步进。默认5秒</summary>
|
||||
public const String MinStep = "MinStep";
|
||||
|
||||
/// <summary>最大步进。默认3600秒</summary>
|
||||
public const String MaxStep = "MaxStep";
|
||||
|
||||
/// <summary>步进率。动态调节步进时,不能超过该比率,百分位,默认100%</summary>
|
||||
public const String StepRate = "StepRate";
|
||||
|
||||
/// <summary>批大小</summary>
|
||||
/// <summary>批大小。在任务时间区间内分页处理,或者每个任务的消息数</summary>
|
||||
public const String BatchSize = "BatchSize";
|
||||
|
||||
/// <summary>偏移。距离实时时间的秒数,部分业务不能跑到实时,秒</summary>
|
||||
|
@ -632,9 +584,9 @@ namespace AntJob.Data.Entity
|
|||
public const String Enable = "Enable";
|
||||
|
||||
/// <summary>内容</summary>
|
||||
public const String Description = "Description";
|
||||
public const String Remark = "Remark";
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
public const String CreateUserID = "CreateUserID";
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
|
@ -646,7 +598,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
public const String CreateIP = "CreateIP";
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
public const String UpdateUserID = "UpdateUserID";
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
|
@ -689,25 +641,16 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>消息数</summary>
|
||||
Int32 MessageCount { get; set; }
|
||||
|
||||
/// <summary>开始。大于等于</summary>
|
||||
/// <summary>开始。大于等于,下一个任务的起点</summary>
|
||||
DateTime Start { get; set; }
|
||||
|
||||
/// <summary>结束。小于,不等于</summary>
|
||||
/// <summary>结束。小于不等于,默认空表示无止境</summary>
|
||||
DateTime End { get; set; }
|
||||
|
||||
/// <summary>步进。最大区间大小,秒</summary>
|
||||
/// <summary>步进。切分任务的时间区间,秒</summary>
|
||||
Int32 Step { get; set; }
|
||||
|
||||
/// <summary>最小步进。默认5秒</summary>
|
||||
Int32 MinStep { get; set; }
|
||||
|
||||
/// <summary>最大步进。默认3600秒</summary>
|
||||
Int32 MaxStep { get; set; }
|
||||
|
||||
/// <summary>步进率。动态调节步进时,不能超过该比率,百分位,默认100%</summary>
|
||||
Int32 StepRate { get; set; }
|
||||
|
||||
/// <summary>批大小</summary>
|
||||
/// <summary>批大小。在任务时间区间内分页处理,或者每个任务的消息数</summary>
|
||||
Int32 BatchSize { get; set; }
|
||||
|
||||
/// <summary>偏移。距离实时时间的秒数,部分业务不能跑到实时,秒</summary>
|
||||
|
@ -753,9 +696,9 @@ namespace AntJob.Data.Entity
|
|||
Boolean Enable { get; set; }
|
||||
|
||||
/// <summary>内容</summary>
|
||||
String Description { get; set; }
|
||||
String Remark { get; set; }
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
Int32 CreateUserID { get; set; }
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
|
@ -767,7 +710,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
String CreateIP { get; set; }
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
Int32 UpdateUserID { get; set; }
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
|
|
|
@ -11,9 +11,9 @@ namespace AntJob.Data.Entity
|
|||
[Serializable]
|
||||
[DataObject]
|
||||
[Description("应用历史。应用的操作历史")]
|
||||
[BindIndex("IX_devicehistory_AppID_Action", false, "AppID,Action")]
|
||||
[BindIndex("IX_devicehistory_CreateTime", false, "CreateTime")]
|
||||
[BindTable("devicehistory", Description = "应用历史。应用的操作历史", ConnName = "Ant", DbType = DatabaseType.None)]
|
||||
[BindIndex("IX_AppHistory_AppID_Action", false, "AppID,Action")]
|
||||
[BindIndex("IX_AppHistory_CreateTime", false, "CreateTime")]
|
||||
[BindTable("AppHistory", Description = "应用历史。应用的操作历史", ConnName = "Ant", DbType = DatabaseType.None)]
|
||||
public partial class AppHistory : IAppHistory
|
||||
{
|
||||
#region 属性
|
||||
|
@ -102,7 +102,7 @@ namespace AntJob.Data.Entity
|
|||
[DisplayName("内容")]
|
||||
[Description("内容")]
|
||||
[DataObjectField(false, false, true, 2000)]
|
||||
[BindColumn("Content", "内容", "")]
|
||||
[BindColumn("Remark", "内容", "")]
|
||||
public String Remark { get { return _Remark; } set { if (OnPropertyChanging(__.Remark, value)) { _Remark = value; OnPropertyChanged(__.Remark); } } }
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -123,11 +123,11 @@ namespace AntJob.Data.Entity
|
|||
public Int64 Error { get { return _Error; } set { if (OnPropertyChanging(__.Error, value)) { _Error = value; OnPropertyChanged(__.Error); } } }
|
||||
|
||||
private Int64 _Cost;
|
||||
/// <summary>耗时。总耗时,秒</summary>
|
||||
/// <summary>耗时。执行任务总耗时,秒</summary>
|
||||
[DisplayName("耗时")]
|
||||
[Description("耗时。总耗时,秒")]
|
||||
[Description("耗时。执行任务总耗时,秒")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("Cost", "耗时。总耗时,秒", "")]
|
||||
[BindColumn("Cost", "耗时。执行任务总耗时,秒", "")]
|
||||
public Int64 Cost { get { return _Cost; } set { if (OnPropertyChanging(__.Cost, value)) { _Cost = value; OnPropertyChanged(__.Cost); } } }
|
||||
|
||||
private Int64 _Speed;
|
||||
|
@ -285,7 +285,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>错误</summary>
|
||||
public static readonly Field Error = FindByName(__.Error);
|
||||
|
||||
/// <summary>耗时。总耗时,秒</summary>
|
||||
/// <summary>耗时。执行任务总耗时,秒</summary>
|
||||
public static readonly Field Cost = FindByName(__.Cost);
|
||||
|
||||
/// <summary>速度。每秒处理数</summary>
|
||||
|
@ -351,7 +351,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>错误</summary>
|
||||
public const String Error = "Error";
|
||||
|
||||
/// <summary>耗时。总耗时,秒</summary>
|
||||
/// <summary>耗时。执行任务总耗时,秒</summary>
|
||||
public const String Cost = "Cost";
|
||||
|
||||
/// <summary>速度。每秒处理数</summary>
|
||||
|
@ -418,7 +418,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>错误</summary>
|
||||
Int64 Error { get; set; }
|
||||
|
||||
/// <summary>耗时。总耗时,秒</summary>
|
||||
/// <summary>耗时。执行任务总耗时,秒</summary>
|
||||
Int64 Cost { get; set; }
|
||||
|
||||
/// <summary>速度。每秒处理数</summary>
|
||||
|
|
|
@ -105,11 +105,11 @@ namespace AntJob.Data.Entity
|
|||
public String Remark { get { return _Remark; } set { if (OnPropertyChanging(__.Remark, value)) { _Remark = value; OnPropertyChanged(__.Remark); } } }
|
||||
|
||||
private Int32 _CreateUserID;
|
||||
/// <summary>创建者</summary>
|
||||
[DisplayName("创建者")]
|
||||
[Description("创建者")]
|
||||
/// <summary>创建人</summary>
|
||||
[DisplayName("创建人")]
|
||||
[Description("创建人")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("CreateUserID", "创建者", "")]
|
||||
[BindColumn("CreateUserID", "创建人", "")]
|
||||
public Int32 CreateUserID { get { return _CreateUserID; } set { if (OnPropertyChanging(__.CreateUserID, value)) { _CreateUserID = value; OnPropertyChanged(__.CreateUserID); } } }
|
||||
|
||||
private String _CreateUser;
|
||||
|
@ -137,11 +137,11 @@ namespace AntJob.Data.Entity
|
|||
public String CreateIP { get { return _CreateIP; } set { if (OnPropertyChanging(__.CreateIP, value)) { _CreateIP = value; OnPropertyChanged(__.CreateIP); } } }
|
||||
|
||||
private Int32 _UpdateUserID;
|
||||
/// <summary>更新者</summary>
|
||||
[DisplayName("更新者")]
|
||||
[Description("更新者")]
|
||||
/// <summary>更新人</summary>
|
||||
[DisplayName("更新人")]
|
||||
[Description("更新人")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("UpdateUserID", "更新者", "")]
|
||||
[BindColumn("UpdateUserID", "更新人", "")]
|
||||
public Int32 UpdateUserID { get { return _UpdateUserID; } set { if (OnPropertyChanging(__.UpdateUserID, value)) { _UpdateUserID = value; OnPropertyChanged(__.UpdateUserID); } } }
|
||||
|
||||
private String _UpdateUser;
|
||||
|
@ -267,7 +267,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>内容</summary>
|
||||
public static readonly Field Remark = FindByName(__.Remark);
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
public static readonly Field CreateUserID = FindByName(__.CreateUserID);
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
|
@ -279,7 +279,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
public static readonly Field CreateIP = FindByName(__.CreateIP);
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
public static readonly Field UpdateUserID = FindByName(__.UpdateUserID);
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
|
@ -330,7 +330,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>内容</summary>
|
||||
public const String Remark = "Remark";
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
public const String CreateUserID = "CreateUserID";
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
|
@ -342,7 +342,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
public const String CreateIP = "CreateIP";
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
public const String UpdateUserID = "UpdateUserID";
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
|
@ -394,7 +394,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>内容</summary>
|
||||
String Remark { get; set; }
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
Int32 CreateUserID { get; set; }
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
|
@ -406,7 +406,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
String CreateIP { get; set; }
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
Int32 UpdateUserID { get; set; }
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
|
|
|
@ -50,11 +50,11 @@ namespace AntJob.Data.Entity
|
|||
public String Content { get { return _Content; } set { if (OnPropertyChanging(__.Content, value)) { _Content = value; OnPropertyChanged(__.Content); } } }
|
||||
|
||||
private Int32 _CreateUserID;
|
||||
/// <summary>创建者</summary>
|
||||
[DisplayName("创建者")]
|
||||
[Description("创建者")]
|
||||
/// <summary>创建人</summary>
|
||||
[DisplayName("创建人")]
|
||||
[Description("创建人")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("CreateUserID", "创建者", "")]
|
||||
[BindColumn("CreateUserID", "创建人", "")]
|
||||
public Int32 CreateUserID { get { return _CreateUserID; } set { if (OnPropertyChanging(__.CreateUserID, value)) { _CreateUserID = value; OnPropertyChanged(__.CreateUserID); } } }
|
||||
|
||||
private DateTime _CreateTime;
|
||||
|
@ -74,11 +74,11 @@ namespace AntJob.Data.Entity
|
|||
public String CreateIP { get { return _CreateIP; } set { if (OnPropertyChanging(__.CreateIP, value)) { _CreateIP = value; OnPropertyChanged(__.CreateIP); } } }
|
||||
|
||||
private Int32 _UpdateUserID;
|
||||
/// <summary>更新者</summary>
|
||||
[DisplayName("更新者")]
|
||||
[Description("更新者")]
|
||||
/// <summary>更新人</summary>
|
||||
[DisplayName("更新人")]
|
||||
[Description("更新人")]
|
||||
[DataObjectField(false, false, false, 0)]
|
||||
[BindColumn("UpdateUserID", "更新者", "")]
|
||||
[BindColumn("UpdateUserID", "更新人", "")]
|
||||
public Int32 UpdateUserID { get { return _UpdateUserID; } set { if (OnPropertyChanging(__.UpdateUserID, value)) { _UpdateUserID = value; OnPropertyChanged(__.UpdateUserID); } } }
|
||||
|
||||
private DateTime _UpdateTime;
|
||||
|
@ -157,7 +157,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>内容。一般是json格式</summary>
|
||||
public static readonly Field Content = FindByName(__.Content);
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
public static readonly Field CreateUserID = FindByName(__.CreateUserID);
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
|
@ -166,7 +166,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
public static readonly Field CreateIP = FindByName(__.CreateIP);
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
public static readonly Field UpdateUserID = FindByName(__.UpdateUserID);
|
||||
|
||||
/// <summary>更新时间</summary>
|
||||
|
@ -193,7 +193,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>内容。一般是json格式</summary>
|
||||
public const String Content = "Content";
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
public const String CreateUserID = "CreateUserID";
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
|
@ -202,7 +202,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
public const String CreateIP = "CreateIP";
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
public const String UpdateUserID = "UpdateUserID";
|
||||
|
||||
/// <summary>更新时间</summary>
|
||||
|
@ -230,7 +230,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>内容。一般是json格式</summary>
|
||||
String Content { get; set; }
|
||||
|
||||
/// <summary>创建者</summary>
|
||||
/// <summary>创建人</summary>
|
||||
Int32 CreateUserID { get; set; }
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
|
@ -239,7 +239,7 @@ namespace AntJob.Data.Entity
|
|||
/// <summary>创建地址</summary>
|
||||
String CreateIP { get; set; }
|
||||
|
||||
/// <summary>更新者</summary>
|
||||
/// <summary>更新人</summary>
|
||||
Int32 UpdateUserID { get; set; }
|
||||
|
||||
/// <summary>更新时间</summary>
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
<Column Name="JobCount" DataType="Int32" Description="作业数" />
|
||||
<Column Name="MessageCount" DataType="Int32" Description="消息数" />
|
||||
<Column Name="Remark" DataType="String" Length="500" Description="内容" />
|
||||
<Column Name="CreateUserID" DataType="Int32" Description="创建者" />
|
||||
<Column Name="CreateUserID" DataType="Int32" Description="创建人" />
|
||||
<Column Name="CreateUser" DataType="String" Description="创建者" />
|
||||
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" />
|
||||
<Column Name="CreateIP" DataType="String" Description="创建地址" />
|
||||
<Column Name="UpdateUserID" DataType="Int32" Description="更新者" />
|
||||
<Column Name="UpdateUserID" DataType="Int32" Description="更新人" />
|
||||
<Column Name="UpdateUser" DataType="String" Description="更新者" />
|
||||
<Column Name="UpdateTime" DataType="DateTime" Description="更新时间" />
|
||||
<Column Name="UpdateIP" DataType="String" Description="更新地址" />
|
||||
|
@ -41,7 +41,7 @@
|
|||
<Column Name="Total" DataType="Int64" Description="总数" />
|
||||
<Column Name="Success" DataType="Int64" Description="成功" />
|
||||
<Column Name="Error" DataType="Int64" Description="错误" />
|
||||
<Column Name="Cost" DataType="Int64" Description="耗时。总耗时,秒" />
|
||||
<Column Name="Cost" DataType="Int64" Description="耗时。执行任务总耗时,秒" />
|
||||
<Column Name="Speed" DataType="Int64" Description="速度。每秒处理数" />
|
||||
<Column Name="LastKey" DataType="String" Description="最后键" />
|
||||
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" />
|
||||
|
@ -55,7 +55,7 @@
|
|||
<Index Columns="AppID" />
|
||||
</Indexes>
|
||||
</Table>
|
||||
<Table Name="AppHistory" TableName="devicehistory" Description="应用历史。应用的操作历史">
|
||||
<Table Name="AppHistory" Description="应用历史。应用的操作历史">
|
||||
<Columns>
|
||||
<Column Name="ID" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
|
||||
<Column Name="AppID" DataType="Int32" Description="应用" />
|
||||
|
@ -67,7 +67,7 @@
|
|||
<Column Name="Server" DataType="String" Description="服务端。客户端登录到哪个服务端,IP加端口" />
|
||||
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" />
|
||||
<Column Name="CreateIP" DataType="String" Description="创建地址" />
|
||||
<Column Name="Remark" ColumnName="Content" DataType="String" Length="2000" Description="内容" />
|
||||
<Column Name="Remark" DataType="String" Length="2000" Description="内容" />
|
||||
</Columns>
|
||||
<Indexes>
|
||||
<Index Columns="AppID,Action" />
|
||||
|
@ -80,10 +80,10 @@
|
|||
<Column Name="AppID" DataType="Int32" Description="应用" />
|
||||
<Column Name="Name" DataType="String" Master="True" Description="名称" />
|
||||
<Column Name="Content" DataType="String" Length="5000" Description="内容。一般是json格式" />
|
||||
<Column Name="CreateUserID" DataType="Int32" Description="创建者" />
|
||||
<Column Name="CreateUserID" DataType="Int32" Description="创建人" />
|
||||
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" />
|
||||
<Column Name="CreateIP" DataType="String" Description="创建地址" />
|
||||
<Column Name="UpdateUserID" DataType="Int32" Description="更新者" />
|
||||
<Column Name="UpdateUserID" DataType="Int32" Description="更新人" />
|
||||
<Column Name="UpdateTime" DataType="DateTime" Description="更新时间" />
|
||||
<Column Name="UpdateIP" DataType="String" Description="更新地址" />
|
||||
</Columns>
|
||||
|
@ -102,13 +102,10 @@
|
|||
<Column Name="Mode" DataType="Int32" Description="调度模式" Type="JobModes" />
|
||||
<Column Name="Topic" DataType="String" Description="主题。消息调度时消费的主题" />
|
||||
<Column Name="MessageCount" DataType="Int32" Description="消息数" />
|
||||
<Column Name="Start" DataType="DateTime" Description="开始。大于等于" />
|
||||
<Column Name="End" DataType="DateTime" Description="结束。小于,不等于" />
|
||||
<Column Name="Step" DataType="Int32" Description="步进。最大区间大小,秒" />
|
||||
<Column Name="MinStep" DataType="Int32" Description="最小步进。默认5秒" />
|
||||
<Column Name="MaxStep" DataType="Int32" Description="最大步进。默认3600秒" />
|
||||
<Column Name="StepRate" DataType="Int32" Description="步进率。动态调节步进时,不能超过该比率,百分位,默认100%" />
|
||||
<Column Name="BatchSize" DataType="Int32" Description="批大小" />
|
||||
<Column Name="Start" DataType="DateTime" Description="开始。大于等于,下一个任务的起点" />
|
||||
<Column Name="End" DataType="DateTime" Description="结束。小于不等于,默认空表示无止境" />
|
||||
<Column Name="Step" DataType="Int32" Description="步进。切分任务的时间区间,秒" />
|
||||
<Column Name="BatchSize" DataType="Int32" Description="批大小。在任务时间区间内分页处理,或者每个任务的消息数" />
|
||||
<Column Name="Offset" DataType="Int32" Description="偏移。距离实时时间的秒数,部分业务不能跑到实时,秒" />
|
||||
<Column Name="MaxTask" DataType="Int32" Description="并行。多任务并行处理" />
|
||||
<Column Name="MaxError" DataType="Int32" Description="最大错误。连续错误达到最大错误数时停止" />
|
||||
|
@ -123,12 +120,12 @@
|
|||
<Column Name="Times" DataType="Int32" Description="次数" />
|
||||
<Column Name="Speed" DataType="Int32" Description="速度" />
|
||||
<Column Name="Enable" DataType="Boolean" Description="启用" />
|
||||
<Column Name="Description" ColumnName="Message" DataType="String" Length="2000" Description="内容" />
|
||||
<Column Name="CreateUserID" DataType="Int32" Description="创建者" />
|
||||
<Column Name="Remark" DataType="String" Length="2000" Description="内容" />
|
||||
<Column Name="CreateUserID" DataType="Int32" Description="创建人" />
|
||||
<Column Name="CreateUser" DataType="String" Description="创建者" />
|
||||
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" />
|
||||
<Column Name="CreateIP" DataType="String" Description="创建地址" />
|
||||
<Column Name="UpdateUserID" DataType="Int32" Description="更新者" />
|
||||
<Column Name="UpdateUserID" DataType="Int32" Description="更新人" />
|
||||
<Column Name="UpdateUser" DataType="String" Description="更新者" />
|
||||
<Column Name="UpdateTime" DataType="DateTime" Description="更新时间" />
|
||||
<Column Name="UpdateIP" DataType="String" Description="更新地址" />
|
||||
|
|
|
@ -234,15 +234,9 @@ namespace AntJob.Server
|
|||
|
||||
if (item.Mode > 0) jb.Mode = item.Mode;
|
||||
if (!item.DisplayName.IsNullOrEmpty()) jb.DisplayName = item.DisplayName;
|
||||
if (!item.Description.IsNullOrEmpty()) jb.Description = item.Description;
|
||||
if (!item.Description.IsNullOrEmpty()) jb.Remark = item.Description;
|
||||
if (!item.ClassName.IsNullOrEmpty()) jb.ClassName = item.ClassName;
|
||||
|
||||
if (jb.Mode == JobModes.Message || jb.Mode == JobModes.Alarm)
|
||||
{
|
||||
jb.StepRate = 0;
|
||||
//jb.MaxStep = jb.MinStep = jb.Step;
|
||||
}
|
||||
|
||||
if (jb.Save() != 0)
|
||||
{
|
||||
WriteLog("[{0}]更新作业[{1}] @[{2}]", app, item.Name, ns.Remote);
|
||||
|
@ -465,14 +459,6 @@ namespace AntJob.Server
|
|||
jt.Key = task.Key;
|
||||
jt.Message = task.Message;
|
||||
|
||||
// 动态调整步进
|
||||
if (task.Status == JobStatus.完成)
|
||||
{
|
||||
AdjustStep(job, jt, Session as IExtend);
|
||||
|
||||
//// 更新积压数
|
||||
//UpdateLatency(job, ji);
|
||||
}
|
||||
// 已终结的作业,汇总统计
|
||||
if (task.Status == JobStatus.完成 || task.Status == JobStatus.错误)
|
||||
{
|
||||
|
@ -579,74 +565,6 @@ namespace AntJob.Server
|
|||
}
|
||||
#endregion
|
||||
|
||||
#region 动态步进
|
||||
public static void AdjustStep(IJob job, JobTask ji, IExtend ext)
|
||||
{
|
||||
// 不许动态调节步进
|
||||
if (job.StepRate == 0 || job.MinStep == job.MaxStep) return;
|
||||
|
||||
//// 向前调节步进,避免多线程时间错乱
|
||||
//var dt = ext["Step_Last"].ToDateTime();
|
||||
//if (dt.Year > 2000 && ji.Start <= dt) return;
|
||||
//ext["Step_Last"] = ji.Start;
|
||||
|
||||
// 新步进
|
||||
var st = 0L;
|
||||
var near = false;
|
||||
var adjust = false;
|
||||
|
||||
// 计算停止线,需要注意偏移量
|
||||
var end = job.End;
|
||||
if (end.Year <= 2000 || end > DateTime.Now) end = DateTime.Now.AddSeconds(-job.Offset);
|
||||
|
||||
// 距离目标较近时步进减半
|
||||
if (ji.End.AddSeconds(ji.Step) > end)
|
||||
{
|
||||
st = ji.Step;
|
||||
while (st > 0 && ji.End.AddSeconds(st) > end) st /= 2;
|
||||
near = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ji.Total > 0)
|
||||
{
|
||||
// 逼近批大小
|
||||
st = (Int64)ji.BatchSize * ji.Step / ji.Total;
|
||||
adjust = true;
|
||||
}
|
||||
// 踩空逻辑
|
||||
else
|
||||
{
|
||||
// 距离目标较远时加大步进
|
||||
//st = job.MaxStep;
|
||||
st = (Int32)(ji.Step * (1 + job.StepRate / 100.0));
|
||||
}
|
||||
|
||||
// 步进率
|
||||
var jstep = ji.Step;
|
||||
var rate = jstep == 0 ? 0 : (st - jstep) * 100.0 / jstep;
|
||||
// 变化不能超过比率
|
||||
if (Math.Abs(rate) > job.StepRate)
|
||||
{
|
||||
rate = job.StepRate;
|
||||
if (st < jstep) rate = -rate;
|
||||
st = (Int32)(jstep + rate * jstep / 100);
|
||||
}
|
||||
}
|
||||
|
||||
// 限制最大最小步进
|
||||
if (st < job.MinStep)
|
||||
st = job.MinStep;
|
||||
else if (st > job.MaxStep)
|
||||
st = job.MaxStep;
|
||||
|
||||
if (st == job.Step) return;
|
||||
|
||||
// 踩空时要求步进没有改变过
|
||||
if (near || adjust || job.Step == ji.Step) job.Step = (Int32)st;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 在线状态
|
||||
/// <summary>获取当前应用的所有在线实例</summary>
|
||||
/// <returns></returns>
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
}
|
||||
<td class="text-center hidden-md hidden-sm hidden-xs">@entity.ID</td>
|
||||
<td><a href="JobTask?JobID=@entity.ID">@entity.Name</a></td>
|
||||
<td title="@entity.Description">@entity.DisplayName</td>
|
||||
<td title="@entity.Remark">@entity.DisplayName</td>
|
||||
@if (appid == 0)
|
||||
{
|
||||
<td>@entity.AppName</td>
|
||||
|
@ -87,17 +87,7 @@
|
|||
<td class="text-right">
|
||||
@if (entity.Mode != JobModes.Message)
|
||||
{
|
||||
if (entity.StepRate > 0)
|
||||
{
|
||||
<span style="color:lightseagreen">
|
||||
@TimeSpan.FromSeconds(entity.Step)
|
||||
</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
@TimeSpan.FromSeconds(entity.Step)
|
||||
}
|
||||
|
||||
@TimeSpan.FromSeconds(entity.Step)
|
||||
}
|
||||
</td>
|
||||
<td class="text-right">@entity.BatchSize.ToString("n0")</td>
|
||||
|
|
Loading…
Reference in New Issue