Template
Fix expired ingest task stuck state
This commit is contained in:
@@ -81,7 +81,8 @@ public class IngestController {
|
||||
public Result<IngestStatusResponse> statusById(@PathVariable("taskId") String taskId) {
|
||||
ProgressMessage pm = progressStore.get(taskId);
|
||||
if (pm == null) {
|
||||
return Result.success(new IngestStatusResponse(taskId, running.get(), false,
|
||||
boolean isRunning = running.get();
|
||||
return Result.success(new IngestStatusResponse(taskId, isRunning, !isRunning,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, "未找到任务或已过期"));
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.lang.reflect.Method;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -159,4 +160,19 @@ class ProgressMessageMappingTest {
|
||||
com.music.common.Result<?> result = controller.start(new com.music.dto.IngestRequest());
|
||||
assertTrue(result.getCode() == 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
void ingestControllerTreatsMissingStoppedTaskAsTerminal() throws Exception {
|
||||
ConfigService cfgService = mock(ConfigService.class);
|
||||
ProgressStore store = new ProgressStore();
|
||||
com.music.controller.IngestController controller = new com.music.controller.IngestController(
|
||||
mock(IngestService.class), store, cfgService);
|
||||
|
||||
com.music.common.Result<com.music.dto.IngestStatusResponse> result =
|
||||
controller.statusById("expired-task");
|
||||
|
||||
assertFalse(result.getData().isRunning());
|
||||
assertTrue(result.getData().isCompleted());
|
||||
assertEquals("未找到任务或已过期", result.getData().getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user