feat: add river-backed async task queue

This commit is contained in:
2026-05-12 10:11:54 +08:00
parent d69aaed444
commit 7e220b7477
30 changed files with 1342 additions and 200 deletions
+6 -2
View File
@@ -46,7 +46,6 @@ import {
getHealth,
getNetworkProxyConfig,
getRunnerPolicy,
getTask,
getWalletSummary,
listAccessRules,
listAuditLogs,
@@ -72,6 +71,7 @@ import {
listUserGroups,
listUsers,
loginLocalAccount,
pollTaskUntilSettled,
registerLocalAccount,
replacePlatformModels,
setUserWalletBalance,
@@ -788,7 +788,11 @@ export function App() {
setCoreMessage('');
try {
const response = await runTask(credential, taskForm);
const detail = await getTask(credential, response.task.id);
const syncTask = (detail: GatewayTask) => {
setTaskResult(detail);
setTasks((current) => [detail, ...current.filter((item) => item.id !== detail.id)]);
};
const detail = await pollTaskUntilSettled(credential, response.task, { onUpdate: syncTask });
setTaskResult(detail);
setTasks((current) => [detail, ...current.filter((item) => item.id !== detail.id)]);
invalidateDataKeys('tasks', 'wallet', 'walletTransactions');