Files
Academic-Affairs-System/src/Jiaowu.Api/Domain/System/BackgroundJobOutboxMessage.cs
T
2026-08-09 10:13:12 +08:00

48 lines
1.2 KiB
C#

using Jiaowu.Api.Domain.Common;
namespace Jiaowu.Api.Domain.System;
public sealed class BackgroundJobOutboxMessage : EntityBase
{
public BackgroundJobKind JobKind { get; set; }
public Guid JobId { get; set; }
public BackgroundJobOutboxState State { get; set; } =
BackgroundJobOutboxState.Pending;
public int PublishAttempts { get; set; }
public int ProcessingAttempts { get; set; }
public DateTime? PublishedAt { get; set; }
public Guid? ProcessingToken { get; set; }
public DateTime? LeaseExpiresAt { get; set; }
public DateTime? CompletedAt { get; set; }
public string? LastError { get; set; }
public static BackgroundJobOutboxMessage Create(
BackgroundJobKind jobKind,
Guid jobId) =>
new()
{
JobKind = jobKind,
JobId = jobId
};
}
public enum BackgroundJobKind
{
AutomaticSchedule = 1,
SchedulePublish = 2,
MakeupExamAuto = 3,
ExamArrangement = 4,
ExamSignInExport = 5,
ExamPublish = 6,
CourseGradeStatisticsRefresh = 7
}
public enum BackgroundJobOutboxState
{
Pending = 1,
Publishing = 2,
Published = 3,
Processing = 4,
Completed = 5
}