已改成后台“检查并发布”任务,原来的超时主要就是同步逐条校验导致的。
发布接口立即返回 202 Accepted,页面轮询显示检查进度。 校验改为批量读取,减少重复数据库查询。 检查失败保留草稿并显示具体原因;成功后原子完成旧课表归档和新课表发布。 同一学期禁止两个发布任务并发,服务重启后未完成任务会自动恢复。 发布期间锁定编辑、自动排课等冲突操作。 已补齐 SQLite 开发迁移及 MySQL 生产迁移。
This commit is contained in:
@@ -83,6 +83,23 @@ public sealed class AutomaticScheduleJob : EntityBase
|
||||
public DateTime? CompletedAt { get; set; }
|
||||
}
|
||||
|
||||
public sealed class SchedulePublishJob : EntityBase
|
||||
{
|
||||
public Guid SchedulePlanId { get; set; }
|
||||
public SchedulePlan? SchedulePlan { get; set; }
|
||||
public Guid AcademicTermId { get; set; }
|
||||
public Guid? ActiveAcademicTermId { get; set; }
|
||||
public Guid? RequestedByUserId { get; set; }
|
||||
public SchedulePublishJobStatus Status { get; set; } =
|
||||
SchedulePublishJobStatus.Queued;
|
||||
public int TotalSteps { get; set; } = 5;
|
||||
public int CompletedSteps { get; set; }
|
||||
public string? CurrentStep { get; set; }
|
||||
public string? ErrorMessage { get; set; }
|
||||
public DateTime? StartedAt { get; set; }
|
||||
public DateTime? CompletedAt { get; set; }
|
||||
}
|
||||
|
||||
public enum SchedulePlanStatus
|
||||
{
|
||||
Draft = 1,
|
||||
@@ -98,6 +115,14 @@ public enum AutomaticScheduleJobStatus
|
||||
Failed = 4
|
||||
}
|
||||
|
||||
public enum SchedulePublishJobStatus
|
||||
{
|
||||
Queued = 1,
|
||||
Running = 2,
|
||||
Succeeded = 3,
|
||||
Failed = 4
|
||||
}
|
||||
|
||||
public enum WeekPattern
|
||||
{
|
||||
All = 1,
|
||||
|
||||
Reference in New Issue
Block a user