feat: 计划作业 (#87)

This commit is contained in:
2024-02-02 14:05:39 +08:00
committed by GitHub
parent 473b0c26f2
commit 8293ec0297
70 changed files with 2171 additions and 14 deletions

View File

@ -0,0 +1,107 @@
using NetAdmin.Domain.DbMaps.Dependency;
using NetAdmin.Domain.DbMaps.Dependency.Fields;
using NetAdmin.Domain.Enums.Sys;
using HttpMethods = NetAdmin.Domain.Enums.HttpMethods;
namespace NetAdmin.Domain.DbMaps.Sys;
/// <summary>
/// 计划作业表
/// </summary>
[Table(Name = Chars.FLG_TABLE_NAME_PREFIX + nameof(Sys_Job))]
public record Sys_Job : VersionEntity, IFieldEnabled, IFieldSummary
{
/// <inheritdoc cref="IFieldEnabled.Enabled" />
[JsonIgnore]
[Column]
public virtual bool Enabled { get; init; }
/// <summary>
/// 执行时间计划
/// </summary>
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31)]
public virtual string ExecutionCron { get; init; }
/// <summary>
/// 请求方法
/// </summary>
[JsonIgnore]
[Column]
public virtual HttpMethods HttpMethod { get; init; }
/// <summary>
/// 作业名称
/// </summary>
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)]
public virtual string JobName { get; init; }
/// <summary>
/// 上次执行时间
/// </summary>
[JsonIgnore]
[Column]
public virtual DateTime? LastExecTime { get; init; }
/// <summary>
/// 上次执行状态
/// </summary>
[JsonIgnore]
[Column]
public virtual HttpStatusCode? LastStatusCode { get; init; }
/// <summary>
/// 下次执行时间
/// </summary>
[JsonIgnore]
[Column]
public virtual DateTime? NextExecTime { get; init; }
/// <summary>
/// 下次执行时间编号
/// </summary>
[JsonIgnore]
[Column]
public virtual long? NextTimeId { get; init; }
/// <summary>
/// 请求体
/// </summary>
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
public virtual string RequestBody { get; init; }
/// <summary>
/// 请求头
/// </summary>
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
public virtual string RequestHeader { get; init; }
/// <summary>
/// 请求的网络地址
/// </summary>
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
public virtual string RequestUrl { get; init; }
/// <summary>
/// 作业状态
/// </summary>
[JsonIgnore]
[Column]
public virtual JobStatues Status { get; init; }
/// <inheritdoc cref="IFieldSummary.Summary" />
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
public virtual string Summary { get; init; }
/// <summary>
/// 执行用户编号
/// </summary>
[JsonIgnore]
[Column]
public virtual long UserId { get; init; }
}

View File

@ -0,0 +1,82 @@
using NetAdmin.Domain.DbMaps.Dependency;
using HttpMethods = NetAdmin.Domain.Enums.HttpMethods;
namespace NetAdmin.Domain.DbMaps.Sys;
/// <summary>
/// 计划作业执行记录表
/// </summary>
[Table(Name = Chars.FLG_TABLE_NAME_PREFIX + nameof(Sys_JobRecord))]
[Index($"idx_{{tablename}}_{nameof(JobId)}_{nameof(TimeId)}", $"{nameof(JobId)},{nameof(TimeId)}", true)]
public record Sys_JobRecord : LiteImmutableEntity
{
/// <summary>
/// 执行耗时(毫秒)
/// </summary>
[Column]
[JsonIgnore]
public virtual long Duration { get; init; }
/// <summary>
/// 请求方法
/// </summary>
[JsonIgnore]
[Column]
public virtual HttpMethods HttpMethod { get; init; }
/// <summary>
/// HTTP 状态码
/// </summary>
[Column]
[JsonIgnore]
public virtual HttpStatusCode HttpStatusCode { get; init; }
/// <summary>
/// 作业编号
/// </summary>
[Column]
[JsonIgnore]
public long JobId { get; init; }
/// <summary>
/// 请求体
/// </summary>
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
[JsonIgnore]
public virtual string RequestBody { get; init; }
/// <summary>
/// 请求头
/// </summary>
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
[JsonIgnore]
public virtual string RequestHeader { get; init; }
/// <summary>
/// 请求的网络地址
/// </summary>
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_127)]
[JsonIgnore]
public virtual string RequestUrl { get; init; }
/// <summary>
/// 响应体
/// </summary>
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
[JsonIgnore]
public virtual string ResponseBody { get; init; }
/// <summary>
/// 响应头
/// </summary>
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
[JsonIgnore]
public virtual string ResponseHeader { get; init; }
/// <summary>
/// 执行时间编号
/// </summary>
[Column]
[JsonIgnore]
public long TimeId { get; set; }
}