mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-10 17:26:38 +08:00
async task framework
This commit is contained in:
@@ -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`);
|
||||
}
|
||||
|
||||
// ==================== 用户管理 ====================
|
||||
|
||||
@@ -28,6 +28,10 @@ export type {
|
||||
AuthSourceRequest,
|
||||
ToggleAuthSourceRequest,
|
||||
TaskMeta,
|
||||
TaskExecution,
|
||||
TaskExecutionStatus,
|
||||
ListTaskExecutionsRequest,
|
||||
ListTaskExecutionsResponse,
|
||||
DispatchTaskRequest,
|
||||
AdminUser,
|
||||
ListUsersRequest,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
// ==================== 用户管理 ====================
|
||||
|
||||
/**
|
||||
|
||||
@@ -95,6 +95,10 @@ export type {
|
||||
CreateSystemConfigRequest,
|
||||
UpdateSystemConfigRequest,
|
||||
TaskMeta,
|
||||
TaskExecution,
|
||||
TaskExecutionStatus,
|
||||
ListTaskExecutionsRequest,
|
||||
ListTaskExecutionsResponse,
|
||||
DispatchTaskRequest,
|
||||
AdminUser,
|
||||
ListUsersRequest,
|
||||
|
||||
Reference in New Issue
Block a user