feat: add inspection task lifecycle controls
This commit is contained in:
@@ -176,6 +176,27 @@ function readResultJson(workDir: string): PluginResult | null {
|
||||
}
|
||||
}
|
||||
|
||||
const DEMO_FLOW_RESULT_DATA_KEYS = [
|
||||
'demoFlowRunId',
|
||||
'demoFlowRole',
|
||||
'demoFlowIndex',
|
||||
'demoFlowTotal',
|
||||
'demoFlowSourcePointCloudFileId',
|
||||
'demoFlowCadFileId',
|
||||
] as const;
|
||||
|
||||
async function readDemoFlowResultData(resultId: number): Promise<Record<string, unknown>> {
|
||||
const row = await db.getTaskAnalysisResultById(resultId);
|
||||
const existing = (row?.resultData as Record<string, unknown> | null) ?? {};
|
||||
const picked: Record<string, unknown> = {};
|
||||
for (const key of DEMO_FLOW_RESULT_DATA_KEYS) {
|
||||
if (existing[key] !== undefined) {
|
||||
picked[key] = existing[key];
|
||||
}
|
||||
}
|
||||
return picked;
|
||||
}
|
||||
|
||||
async function runProcessRuntime(
|
||||
manifest: PluginManifest,
|
||||
workDir: string,
|
||||
@@ -286,12 +307,14 @@ export async function runAlgorithmJob(
|
||||
): Promise<void> {
|
||||
const manifest = getPlugin(pluginId);
|
||||
if (!manifest) {
|
||||
const demoFlowResultData = await readDemoFlowResultData(resultId);
|
||||
await db.updateTaskAnalysisResult(resultId, {
|
||||
status: 'error',
|
||||
resultData: {
|
||||
kind: 'plugin',
|
||||
pluginId,
|
||||
error: `未注册的插件:${pluginId}`,
|
||||
...demoFlowResultData,
|
||||
} as PluginResultData,
|
||||
});
|
||||
return;
|
||||
@@ -333,6 +356,7 @@ export async function runAlgorithmJob(
|
||||
? 'completed'
|
||||
: 'error';
|
||||
|
||||
const demoFlowResultData = await readDemoFlowResultData(resultId);
|
||||
const resultData: PluginResultData = {
|
||||
kind: 'plugin',
|
||||
pluginId,
|
||||
@@ -351,6 +375,7 @@ export async function runAlgorithmJob(
|
||||
error: finalStatus === 'error'
|
||||
? result?.message ?? `子进程退出码 ${exitCode}`
|
||||
: undefined,
|
||||
...demoFlowResultData,
|
||||
};
|
||||
|
||||
await db.updateTaskAnalysisResult(resultId, {
|
||||
@@ -404,12 +429,14 @@ export async function runAlgorithmJob(
|
||||
} catch (err) {
|
||||
console.error('[AlgorithmJobRunner]', err);
|
||||
const message = err instanceof Error ? err.message : String(err);
|
||||
const demoFlowResultData = await readDemoFlowResultData(resultId);
|
||||
await db.updateTaskAnalysisResult(resultId, {
|
||||
status: 'error',
|
||||
resultData: {
|
||||
kind: 'plugin',
|
||||
pluginId,
|
||||
error: message,
|
||||
...demoFlowResultData,
|
||||
} as PluginResultData,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user