diff --git a/AntJob.Data/Ant.htm b/AntJob.Data/Ant.htm
index 9d0c46c..032defd 100644
--- a/AntJob.Data/Ant.htm
+++ b/AntJob.Data/Ant.htm
@@ -396,6 +396,17 @@
客户端登录到哪个服务端,IP加端口 |
+
+ Enable |
+ 启用 |
+ Boolean |
+ |
+ |
+ |
+ N |
+ 是否允许申请任务 |
+
+
Tasks |
任务数 |
diff --git a/AntJob.Data/Entity/应用在线.cs b/AntJob.Data/Entity/应用在线.cs
index 0574c1b..2a7d2f8 100644
--- a/AntJob.Data/Entity/应用在线.cs
+++ b/AntJob.Data/Entity/应用在线.cs
@@ -96,6 +96,14 @@ public partial class AppOnline
[BindColumn("Server", "服务端。客户端登录到哪个服务端,IP加端口", "")]
public String Server { get => _Server; set { if (OnPropertyChanging("Server", value)) { _Server = value; OnPropertyChanged("Server"); } } }
+ private Boolean _Enable;
+ /// 启用。是否允许申请任务
+ [DisplayName("启用")]
+ [Description("启用。是否允许申请任务")]
+ [DataObjectField(false, false, false, 0)]
+ [BindColumn("Enable", "启用。是否允许申请任务", "")]
+ public Boolean Enable { get => _Enable; set { if (OnPropertyChanging("Enable", value)) { _Enable = value; OnPropertyChanged("Enable"); } } }
+
private Int32 _Tasks;
/// 任务数
[DisplayName("任务数")]
@@ -215,6 +223,7 @@ public partial class AppOnline
"Version" => _Version,
"CompileTime" => _CompileTime,
"Server" => _Server,
+ "Enable" => _Enable,
"Tasks" => _Tasks,
"Total" => _Total,
"Success" => _Success,
@@ -242,6 +251,7 @@ public partial class AppOnline
case "Version": _Version = Convert.ToString(value); break;
case "CompileTime": _CompileTime = value.ToDateTime(); break;
case "Server": _Server = Convert.ToString(value); break;
+ case "Enable": _Enable = value.ToBoolean(); break;
case "Tasks": _Tasks = value.ToInt(); break;
case "Total": _Total = value.ToLong(); break;
case "Success": _Success = value.ToLong(); break;
@@ -305,6 +315,9 @@ public partial class AppOnline
/// 服务端。客户端登录到哪个服务端,IP加端口
public static readonly Field Server = FindByName("Server");
+ /// 启用。是否允许申请任务
+ public static readonly Field Enable = FindByName("Enable");
+
/// 任务数
public static readonly Field Tasks = FindByName("Tasks");
@@ -374,6 +387,9 @@ public partial class AppOnline
/// 服务端。客户端登录到哪个服务端,IP加端口
public const String Server = "Server";
+ /// 启用。是否允许申请任务
+ public const String Enable = "Enable";
+
/// 任务数
public const String Tasks = "Tasks";
diff --git a/AntJob.Data/Model.xml b/AntJob.Data/Model.xml
index e8a330a..c0ee0f9 100644
--- a/AntJob.Data/Model.xml
+++ b/AntJob.Data/Model.xml
@@ -78,6 +78,7 @@
+
diff --git a/AntJob.Server/Services/AppService.cs b/AntJob.Server/Services/AppService.cs
index 0fe205c..b492c2e 100644
--- a/AntJob.Server/Services/AppService.cs
+++ b/AntJob.Server/Services/AppService.cs
@@ -186,7 +186,7 @@ public class AppService
public AppOnline GetOnline(App app, String ip)
{
var ins = $"{app.Name}@{ip}";
- var online = AppOnline.FindByInstance(ins) ?? new AppOnline { CreateIP = ip };
+ var online = AppOnline.FindByInstance(ins) ?? new AppOnline { Enable = true, CreateIP = ip };
online.AppID = app.ID;
online.Instance = ins;
diff --git a/AntJob.Server/Services/JobService.cs b/AntJob.Server/Services/JobService.cs
index 7c128d8..b9bbfe8 100644
--- a/AntJob.Server/Services/JobService.cs
+++ b/AntJob.Server/Services/JobService.cs
@@ -152,7 +152,9 @@ public class JobService(AppService appService, ICacheProvider cacheProvider, ITr
if (job == null) throw new XException($"应用[{app.ID}/{app.Name}]下未找到作业[{jobName}]");
if (job.DataTime.Year <= 2000) throw new XException("作业[{0}/{1}]未设置数据时间", job.ID, job.Name);
+ // 应用在线,但可能禁止向其分配任务
var online = _appService.GetOnline(app, ip);
+ if (!online.Enable) return [];
var list = new List();