| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- namespace Admin.NET.Plugin.AiDOP.Entity.SmartOps;
- /// <summary>
- /// ETL 执行机实例注册表。每个连本库的后端进程注册一行并定期心跳,
- /// 用于运维在页面上看清「有哪些进程连着这个库、各自属于哪个槽位、还活着没」。
- ///
- /// <para><b>本表不再持有执行机指派</b>:指派在 <c>ado_etl_runner_designation</c>,
- /// 指向的是 <see cref="SlotCode"/> 而不是某一行实例。原因见该表注释——
- /// <c>instance_id</c> 是进程级标识,把角色挂上去会让每次重启都丢指派。</para>
- ///
- /// <para><b>无租户列是刻意的</b>:实例是部署事实,不属于任何租户。
- /// 本类不实现租户过滤接口,SqlSugar 不会给它加租户条件。</para>
- /// </summary>
- [SugarTable("ado_etl_instance", "ETL执行机实例注册")]
- public class AdoEtlInstance
- {
- [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)]
- public long Id { get; set; }
- /// <summary>形如 <c>机器名:进程ID:启动时间</c>,见 <c>AidopInstanceIdentity</c>。唯一索引。</summary>
- [SugarColumn(ColumnName = "instance_id", Length = 200)]
- public string InstanceId { get; set; } = string.Empty;
- [SugarColumn(ColumnName = "machine_name", Length = 128)]
- public string MachineName { get; set; } = string.Empty;
- [SugarColumn(ColumnName = "process_id")]
- public int ProcessId { get; set; }
- [SugarColumn(ColumnName = "app_version", Length = 64, IsNullable = true)]
- public string AppVersion { get; set; }
- /// <summary>
- /// 本进程声明所属的部署槽位(来自 <c>AIDOP_ETL_SLOT</c> / <c>AiDOP:Jobs:Slot</c>),
- /// 未声明为 null。执行机判定就是拿它和指派表里的槽位比对。
- /// </summary>
- [SugarColumn(ColumnName = "slot_code", Length = 128, IsNullable = true)]
- public string SlotCode { get; set; }
- /// <summary>
- /// 遗留列,**不要再读写**。指派已迁到 <c>ado_etl_runner_designation.slot_code</c>,
- /// 执行机身份请用 <c>AidopJobGate.IsRunner</c> 或页面返回的派生值。
- ///
- /// <para>保留一个版本而不立即删列:升级窗口内可能仍有旧二进制在跑,
- /// 它们会继续读这一列;待全部实例升到槽位模型后再单独发版删除。</para>
- /// </summary>
- [SugarColumn(ColumnName = "is_runner")]
- public bool IsRunner { get; set; }
- [SugarColumn(ColumnName = "started_at")]
- public DateTime StartedAt { get; set; }
- /// <summary>最近一次心跳。页面据此判存活,超过心跳窗口即视为已下线。</summary>
- [SugarColumn(ColumnName = "last_heartbeat_at")]
- public DateTime LastHeartbeatAt { get; set; }
- [SugarColumn(ColumnName = "create_time")]
- public DateTime CreateTime { get; set; }
- [SugarColumn(ColumnName = "update_time")]
- public DateTime UpdateTime { get; set; }
- }
|