async task framework

This commit is contained in:
ryan
2026-06-07 23:16:46 +08:00
parent 70a13dc107
commit 589ae08318
32 changed files with 3509 additions and 182 deletions
+31 -2
View File
@@ -4,9 +4,12 @@ import type {
AuthSourceRequest,
CreateSystemConfigRequest,
DispatchTaskRequest,
ListTaskExecutionsRequest,
ListTaskExecutionsResponse,
ListUsersRequest,
ListUsersResponse,
SystemConfig,
TaskExecution,
TaskMeta,
TaskTypeResponse,
ToggleAuthSourceRequest,
@@ -215,8 +218,34 @@ export class AdminService extends BaseService {
* - user_gamification 需要 user_id 参数
* - 其他任务无需额外参数
*/
static async dispatchTask(request: DispatchTaskRequest): Promise<void> {
return this.post<void>('/tasks/dispatch', request);
static async dispatchTask(request: DispatchTaskRequest): Promise<string> {
return this.post<string>('/tasks/dispatch', request);
}
/**
* 查询任务执行记录列表
*/
static async listTaskExecutions(
request: ListTaskExecutionsRequest = {},
): Promise<ListTaskExecutionsResponse> {
return this.get<ListTaskExecutionsResponse>(
'/tasks/executions',
request as unknown as Record<string, unknown>,
);
}
/**
* 查询任务执行详情
*/
static async getTaskExecution(id: string): Promise<TaskExecution> {
return this.get<TaskExecution>(`/tasks/executions/${ id }`);
}
/**
* 重试失败任务
*/
static async retryTaskExecution(id: string): Promise<string> {
return this.post<string>(`/tasks/executions/${ id }/retry`);
}
// ==================== 用户管理 ====================
+4
View File
@@ -28,6 +28,10 @@ export type {
AuthSourceRequest,
ToggleAuthSourceRequest,
TaskMeta,
TaskExecution,
TaskExecutionStatus,
ListTaskExecutionsRequest,
ListTaskExecutionsResponse,
DispatchTaskRequest,
AdminUser,
ListUsersRequest,
+46
View File
@@ -100,6 +100,52 @@ export interface DispatchTaskRequest {
user_id?: string;
}
export type TaskExecutionStatus = 'pending' | 'running' | 'succeeded' | 'failed';
/**
* 任务执行记录
*/
export interface TaskExecution {
id: string;
task_id: string;
task_type: string;
task_name: string;
status: TaskExecutionStatus;
retryable: boolean;
max_retry: number;
retry_count: number;
log: string;
error_message: string;
result: string;
started_at?: string | null;
finished_at?: string | null;
duration: number;
payload: string;
triggered_by: string;
created_at: string;
updated_at: string;
}
/**
* 查询任务执行记录请求参数
*/
export interface ListTaskExecutionsRequest {
status?: TaskExecutionStatus;
task_type?: string;
page?: number;
page_size?: number;
}
/**
* 查询任务执行记录响应
*/
export interface ListTaskExecutionsResponse {
items: TaskExecution[];
total: number;
page: number;
page_size: number;
}
// ==================== 用户管理 ====================
/**
+4
View File
@@ -95,6 +95,10 @@ export type {
CreateSystemConfigRequest,
UpdateSystemConfigRequest,
TaskMeta,
TaskExecution,
TaskExecutionStatus,
ListTaskExecutionsRequest,
ListTaskExecutionsResponse,
DispatchTaskRequest,
AdminUser,
ListUsersRequest,