85 lines
2.8 KiB
TypeScript

import { deleteRecords, createRecord, updateRecord, getRecord, getRecords } from './common'
// 获取 Scheduled Job 列表 - 使用通用函数
export const getScheduledJobs = async (page: number = 1, pageSize: number = 10, filters: any[] = []): Promise<any> => {
const fields = [
'name', 'method', 'frequency', 'cron_format',
'stopped', 'create_log', 'last_execution',
'server_script', 'scheduler_event', 'creation', 'modified'
]
const result = await getRecords(
'Local Scheduled Job',
filters,
fields,
'modified desc',
(page - 1) * pageSize,
pageSize
)
if (!result.success) {
throw new Error(result.message || '获取 Scheduled Job 列表失败')
}
return {
items: result.data || [],
total: result.total || 0
}
}
// 获取单个 Scheduled Job 详情 - 使用通用函数
export const getScheduledJobDetail = async (name: string): Promise<any> => {
const result = await getRecord('Local Scheduled Job', name)
if (!result.success) {
throw new Error(result.message || '获取 Scheduled Job 详情失败')
}
return result.data
}
// 切换 Scheduled Job 状态 - 使用通用函数
export const toggleScheduledJobStatus = async (name: string): Promise<{ success: boolean; message?: string }> => {
try {
// 先获取当前状态
const currentData = await getRecord('Local Scheduled Job', name)
if (!currentData.success) {
throw new Error('获取当前状态失败')
}
const currentStopped = currentData.data.stopped || 0
const newStopped = currentStopped ? 0 : 1
// 更新状态 - 使用通用函数
const result = await updateRecord('Local Scheduled Job', name, { stopped: newStopped })
if (result.success) {
return {
success: true,
message: `状态已更新为${newStopped ? '停止' : '运行'}`
}
} else {
throw new Error(result.message || '更新状态失败')
}
} catch (error: any) {
console.error('Error in toggleScheduledJobStatus:', error)
return {
success: false,
message: error.message || '更新状态失败'
}
}
}
// 创建 Scheduled Job - 使用通用函数
export const createScheduledJob = async (data: Record<string, any>): Promise<{ success: boolean; data?: any; message?: string }> => {
return createRecord('Local Scheduled Job', data)
}
// 更新 Scheduled Job - 使用通用函数
export const updateScheduledJob = async (name: string, data: Record<string, any>): Promise<{ success: boolean; data?: any; message?: string }> => {
return updateRecord('Local Scheduled Job', name, data)
}
// 删除 Scheduled Job - 使用通用函数
export const deleteScheduledJobs = async (names: string[]): Promise<{ success: boolean; message?: string }> => {
return deleteRecords('Local Scheduled Job', names)
}