Skip to content

Commit 978abf5

Browse files
committed
某个在线实例出错超过阈值时,停止向该实例分配任务
1 parent 0d87aa9 commit 978abf5

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

AntJob.Server/Services/AppService.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,14 @@ public void UpdateOnline(App app, JobTask ji, AppOnline online)
195195
//var online = GetOnline(app, sessionId, ip);
196196
online.Total += ji.Total;
197197
online.Success += ji.Success;
198-
online.Error += ji.Error;
198+
//online.Error += ji.Error;
199199
online.Cost += ji.Cost;
200200
online.Speed = ji.Speed;
201201
online.LastKey = ji.Key;
202-
online.SaveAsync();
202+
203+
if (ji.Status == JobStatus.错误) online.Error++;
204+
205+
online.Update();
203206
}
204207
#endregion
205208

AntJob.Server/Services/JobService.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ public Boolean Report(App app, TaskResult result, AppOnline online)
470470
SetJobError(job, task, online.UpdateIP);
471471

472472
// 出错时判断如果超过最大错误数,则停止作业
473-
CheckMaxError(app, job);
473+
CheckMaxError(app, job, online);
474474

475475
// 记录状态
476476
_appService.UpdateOnline(app, task, online);
@@ -565,7 +565,7 @@ private JobError SetJobError(Job job, JobTask task, String ip)
565565
return err;
566566
}
567567

568-
private void CheckMaxError(App app, Job job)
568+
private void CheckMaxError(App app, Job job, AppOnline online)
569569
{
570570
// 出错时判断如果超过最大错误数,则停止作业
571571
var maxError = job.MaxError <= 0 ? 100 : job.MaxError;
@@ -575,7 +575,13 @@ private void CheckMaxError(App app, Job job)
575575
job.Enable = false;
576576

577577
//job.SaveAsync();
578-
(job as IEntity).Update();
578+
job.Update();
579+
}
580+
581+
if (online.Enable && online.Error > maxError)
582+
{
583+
online.Enable = false;
584+
online.Update();
579585
}
580586
}
581587
#endregion

0 commit comments

Comments
 (0)