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();