自动编排接口现在立即返回 202 + jobId,不会再等待 15 秒导致 Axios 超时。
任务参数、状态和结果持久化到 MySQL。 接入现有 outbox;配置 BackgroundJobs__Transport=RabbitMq 时使用 RabbitMQ 队列 exam.arrangement,否则使用 InMemory worker。 服务重启后可恢复未完成任务。 前端显示排队/执行/完成/失败状态,刷新页面可恢复正在执行的任务。 编排期间禁止修改、删除或发布对应计划。 补考原有“一键生成”保留,并与编排任务互斥。 运维后台增加“考试与补考编排”失败任务筛选。
This commit is contained in:
@@ -250,7 +250,6 @@ public sealed class TeachingWorkflowRosterTests
|
||||
var exams = new ExamsController(
|
||||
db,
|
||||
managerScope,
|
||||
new ExamArrangementService(db),
|
||||
NoOpAppCache.Instance);
|
||||
var publishResult = await exams.Publish(examPlan.Id, CancellationToken.None);
|
||||
Assert.IsType<NoContentResult>(publishResult);
|
||||
@@ -286,14 +285,12 @@ public sealed class TeachingWorkflowRosterTests
|
||||
var studentExams = new ExamsController(
|
||||
db,
|
||||
new StudentDataScope(studentUserId),
|
||||
new ExamArrangementService(db),
|
||||
NoOpAppCache.Instance);
|
||||
Assert.Single(ReadItems(
|
||||
await studentExams.GetMySchedule(CancellationToken.None)));
|
||||
var teacherExams = new ExamsController(
|
||||
db,
|
||||
scope,
|
||||
new ExamArrangementService(db),
|
||||
NoOpAppCache.Instance);
|
||||
Assert.Single(ReadItems(
|
||||
await teacherExams.GetMySchedule(CancellationToken.None)));
|
||||
|
||||
Reference in New Issue
Block a user