Skip to content

Commit f8c9389

Browse files
committed
MaxTask 并行度。每个实例允许多少个任务并行处理,多执行端时叠加。多执行端均分的效果并不好,反而导致启动时并行任务数过大。
1 parent 4dce558 commit f8c9389

4 files changed

Lines changed: 19 additions & 18 deletions

File tree

AntJob.Data/Ant.htm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,7 @@ <h3>作业(Job)</h3>
889889
<td></td>
890890
<td></td>
891891
<td>N</td>
892-
<td>一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度</td>
892+
<td>每个实例允许多少个任务并行处理,多执行端时叠加</td>
893893
</tr>
894894

895895
<tr>

AntJob.Data/Entity/作业.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,12 @@ public partial class Job
151151
public Int32 Offset { get => _Offset; set { if (OnPropertyChanging("Offset", value)) { _Offset = value; OnPropertyChanged("Offset"); } } }
152152

153153
private Int32 _MaxTask;
154-
/// <summary>并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度</summary>
154+
/// <summary>并行度。每个实例允许多少个任务并行处理,多执行端时叠加</summary>
155155
[Category("控制参数")]
156156
[DisplayName("并行度")]
157-
[Description("并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度")]
157+
[Description("并行度。每个实例允许多少个任务并行处理,多执行端时叠加")]
158158
[DataObjectField(false, false, false, 0)]
159-
[BindColumn("MaxTask", "并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度", "")]
159+
[BindColumn("MaxTask", "并行度。每个实例允许多少个任务并行处理,多执行端时叠加", "")]
160160
public Int32 MaxTask { get => _MaxTask; set { if (OnPropertyChanging("MaxTask", value)) { _MaxTask = value; OnPropertyChanged("MaxTask"); } } }
161161

162162
private Int32 _MaxError;
@@ -553,7 +553,7 @@ public partial class _
553553
/// <summary>偏移。距离AntServer当前时间的秒数,避免因服务器之间的时间误差而错过部分数据,秒</summary>
554554
public static readonly Field Offset = FindByName("Offset");
555555

556-
/// <summary>并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度</summary>
556+
/// <summary>并行度。每个实例允许多少个任务并行处理,多执行端时叠加</summary>
557557
public static readonly Field MaxTask = FindByName("MaxTask");
558558

559559
/// <summary>最大错误。连续错误达到最大错误数时停止</summary>
@@ -685,7 +685,7 @@ public partial class __
685685
/// <summary>偏移。距离AntServer当前时间的秒数,避免因服务器之间的时间误差而错过部分数据,秒</summary>
686686
public const String Offset = "Offset";
687687

688-
/// <summary>并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度</summary>
688+
/// <summary>并行度。每个实例允许多少个任务并行处理,多执行端时叠加</summary>
689689
public const String MaxTask = "MaxTask";
690690

691691
/// <summary>最大错误。连续错误达到最大错误数时停止</summary>

AntJob.Data/Model.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
<Column Name="Step" DataType="Int32" ItemType="TimeSpan" Description="步进。切分任务的时间区间,秒" />
136136
<Column Name="BatchSize" DataType="Int32" Description="批大小。数据调度每次抽取数据的分页大小,或消息调度每次处理的消息数,定时调度不适用" />
137137
<Column Name="Offset" DataType="Int32" ItemType="TimeSpan" Description="偏移。距离AntServer当前时间的秒数,避免因服务器之间的时间误差而错过部分数据,秒" />
138-
<Column Name="MaxTask" DataType="Int32" Description="并行度。一共允许多少个任务并行处理,多执行端时平均分配,确保该作业整体并行度" Category="控制参数" />
138+
<Column Name="MaxTask" DataType="Int32" Description="并行度。每个实例允许多少个任务并行处理,多执行端时叠加" Category="控制参数" />
139139
<Column Name="MaxError" DataType="Int32" Description="最大错误。连续错误达到最大错误数时停止" Category="控制参数" />
140140
<Column Name="MaxRetry" DataType="Int32" Description="最大重试。默认10次,超过该次数后将不再重试" Category="控制参数" />
141141
<Column Name="MaxTime" DataType="Int32" ItemType="TimeSpan" Description="最大执行时间。默认600秒,超过该时间则认为执行器故障,将会把该任务分配给其它执行器" Category="控制参数" />

AntJob/Scheduler.cs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -304,17 +304,18 @@ public async Task<Boolean> Process()
304304
}
305305

306306
// 如果正在处理任务数没达到最大并行度,则继续安排任务
307-
var max = job.MaxTask;
308-
if (prv is NetworkJobProvider nprv)
309-
{
310-
// 如果是网络提供者,则根据在线节点数平分并行度
311-
var ps = nprv.Peers;
312-
if (ps != null && ps.Length > 0)
313-
{
314-
max = max < ps.Length ? 1 : (Int32)Math.Round((Double)max / ps.Length);
315-
}
316-
}
317-
var count = max - handler.Busy;
307+
//var max = job.MaxTask;
308+
//if (prv is NetworkJobProvider nprv)
309+
//{
310+
// // 如果是网络提供者,则根据在线节点数平分并行度
311+
// var ps = nprv.Peers;
312+
// if (ps != null && ps.Length > 0)
313+
// {
314+
// max = max < ps.Length ? 1 : (Int32)Math.Round((Double)max / ps.Length);
315+
// }
316+
//}
317+
//var count = max - handler.Busy;
318+
var count = job.MaxTask - handler.Busy;
318319
if (count > 0)
319320
{
320321
// 循环申请任务,喂饱处理器

0 commit comments

Comments
 (0)