主要改动:
自动排课接口立即返回 202 + jobId 后台服务独立执行,不受浏览器关闭或前端超时影响 进度、成功、失败状态持久化到数据库 服务重启后自动恢复排队中或中断的任务 同一草稿禁止重复提交后台任务 运行期间禁止编辑、发布或删除该课表 排课结果和任务成功状态在同一事务中提交 前端每秒轮询进度,显示已处理教学班和已规划安排数
This commit is contained in:
@@ -65,6 +65,24 @@ public sealed class TeachingTaskAllowedClassroom
|
||||
public Classroom? Classroom { get; set; }
|
||||
}
|
||||
|
||||
public sealed class AutomaticScheduleJob : EntityBase
|
||||
{
|
||||
public Guid SchedulePlanId { get; set; }
|
||||
public SchedulePlan? SchedulePlan { get; set; }
|
||||
public Guid? ActiveSchedulePlanId { get; set; }
|
||||
public Guid? RequestedByUserId { get; set; }
|
||||
public AutomaticScheduleJobStatus Status { get; set; } =
|
||||
AutomaticScheduleJobStatus.Queued;
|
||||
public int TotalTasks { get; set; }
|
||||
public int ProcessedTasks { get; set; }
|
||||
public int CreatedEntries { get; set; }
|
||||
public int CompletedTasks { get; set; }
|
||||
public string? MessagesJson { get; set; }
|
||||
public string? ErrorMessage { get; set; }
|
||||
public DateTime? StartedAt { get; set; }
|
||||
public DateTime? CompletedAt { get; set; }
|
||||
}
|
||||
|
||||
public enum SchedulePlanStatus
|
||||
{
|
||||
Draft = 1,
|
||||
@@ -72,6 +90,14 @@ public enum SchedulePlanStatus
|
||||
Archived = 3
|
||||
}
|
||||
|
||||
public enum AutomaticScheduleJobStatus
|
||||
{
|
||||
Queued = 1,
|
||||
Running = 2,
|
||||
Succeeded = 3,
|
||||
Failed = 4
|
||||
}
|
||||
|
||||
public enum WeekPattern
|
||||
{
|
||||
All = 1,
|
||||
|
||||
Reference in New Issue
Block a user