mirror of
https://github.com/whyour/qinglong.git
synced 2025-11-22 16:38:33 +08:00
移除说明文档
This commit is contained in:
parent
58f5fe763f
commit
e41eed81ae
|
|
@ -1,198 +0,0 @@
|
||||||
# QLAPI Cron Management Features
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
This document describes the new cron task management capabilities added to the QLAPI (Qinglong API). These features allow scripts to interact with scheduled tasks (cron jobs) programmatically.
|
|
||||||
|
|
||||||
## New API Methods
|
|
||||||
|
|
||||||
### 1. getCrons - Query Cron Tasks
|
|
||||||
|
|
||||||
Query and search for cron tasks.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
// Get all cron tasks
|
|
||||||
QLAPI.getCrons({}).then((response) => {
|
|
||||||
console.log('All cron tasks:', response);
|
|
||||||
// response.code: 200 for success
|
|
||||||
// response.data: array of cron items
|
|
||||||
});
|
|
||||||
|
|
||||||
// Search for specific cron tasks
|
|
||||||
QLAPI.getCrons({ searchValue: 'test' }).then((response) => {
|
|
||||||
console.log('Search results:', response);
|
|
||||||
// Returns cron tasks matching the search term
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Parameters:**
|
|
||||||
- `searchValue` (optional): String to search for in task names, commands, schedules, or labels
|
|
||||||
|
|
||||||
**Response:**
|
|
||||||
- `code`: 200 for success, 500 for error
|
|
||||||
- `data`: Array of cron items with properties:
|
|
||||||
- `id`: Task ID
|
|
||||||
- `name`: Task name
|
|
||||||
- `command`: Command to execute
|
|
||||||
- `schedule`: Cron schedule expression
|
|
||||||
- `status`: Task status (0=idle, 1=running, 2=queued)
|
|
||||||
- `isDisabled`: 0=enabled, 1=disabled
|
|
||||||
- `labels`: Array of labels
|
|
||||||
- `task_before`: Script to run before task
|
|
||||||
- `task_after`: Script to run after task
|
|
||||||
- Other metadata fields
|
|
||||||
|
|
||||||
### 2. getCronById - Get Cron Task by ID
|
|
||||||
|
|
||||||
Retrieve a specific cron task by its ID.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
QLAPI.getCronById({ id: 1 }).then((response) => {
|
|
||||||
console.log('Cron task:', response);
|
|
||||||
// response.code: 200 for success, 404 if not found
|
|
||||||
// response.data: cron item details
|
|
||||||
}).catch((err) => {
|
|
||||||
console.log('Error:', err);
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Parameters:**
|
|
||||||
- `id` (required): The task ID
|
|
||||||
|
|
||||||
**Response:**
|
|
||||||
- `code`: 200 for success, 400 for invalid parameters, 404 if not found
|
|
||||||
- `data`: Cron item with full details
|
|
||||||
|
|
||||||
### 3. enableCrons - Enable Cron Tasks
|
|
||||||
|
|
||||||
Enable one or more cron tasks by their IDs.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
// Enable a single task
|
|
||||||
QLAPI.enableCrons({ ids: [1] }).then((response) => {
|
|
||||||
console.log('Task enabled:', response);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Enable multiple tasks
|
|
||||||
QLAPI.enableCrons({ ids: [1, 2, 3] }).then((response) => {
|
|
||||||
console.log('Tasks enabled:', response);
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Parameters:**
|
|
||||||
- `ids` (required): Array of task IDs to enable
|
|
||||||
|
|
||||||
**Response:**
|
|
||||||
- `code`: 200 for success, 400 for invalid parameters
|
|
||||||
|
|
||||||
### 4. disableCrons - Disable Cron Tasks
|
|
||||||
|
|
||||||
Disable one or more cron tasks by their IDs.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
// Disable a single task
|
|
||||||
QLAPI.disableCrons({ ids: [1] }).then((response) => {
|
|
||||||
console.log('Task disabled:', response);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Disable multiple tasks
|
|
||||||
QLAPI.disableCrons({ ids: [1, 2, 3] }).then((response) => {
|
|
||||||
console.log('Tasks disabled:', response);
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Parameters:**
|
|
||||||
- `ids` (required): Array of task IDs to disable
|
|
||||||
|
|
||||||
**Response:**
|
|
||||||
- `code`: 200 for success, 400 for invalid parameters
|
|
||||||
|
|
||||||
### 5. runCrons - Manually Execute Cron Tasks
|
|
||||||
|
|
||||||
Manually trigger execution of one or more cron tasks.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
// Run a single task
|
|
||||||
QLAPI.runCrons({ ids: [1] }).then((response) => {
|
|
||||||
console.log('Task started:', response);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Run multiple tasks
|
|
||||||
QLAPI.runCrons({ ids: [1, 2, 3] }).then((response) => {
|
|
||||||
console.log('Tasks started:', response);
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Parameters:**
|
|
||||||
- `ids` (required): Array of task IDs to run
|
|
||||||
|
|
||||||
**Response:**
|
|
||||||
- `code`: 200 for success, 400 for invalid parameters
|
|
||||||
|
|
||||||
## Use Cases
|
|
||||||
|
|
||||||
### Task Coordination
|
|
||||||
|
|
||||||
Execute tasks in sequence or based on conditions:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
// Run task 2 after task 1 completes
|
|
||||||
QLAPI.runCrons({ ids: [1] }).then(() => {
|
|
||||||
console.log('Task 1 started');
|
|
||||||
// You might want to poll or wait for task 1 to complete
|
|
||||||
// before running task 2
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
### Conditional Task Management
|
|
||||||
|
|
||||||
Enable or disable tasks based on certain conditions:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
// Get all tasks and conditionally enable/disable them
|
|
||||||
QLAPI.getCrons({}).then((response) => {
|
|
||||||
const tasks = response.data;
|
|
||||||
|
|
||||||
tasks.forEach(task => {
|
|
||||||
if (task.name.includes('special')) {
|
|
||||||
// Enable special tasks
|
|
||||||
QLAPI.enableCrons({ ids: [task.id] });
|
|
||||||
} else {
|
|
||||||
// Disable other tasks
|
|
||||||
QLAPI.disableCrons({ ids: [task.id] });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
### Task Status Monitoring
|
|
||||||
|
|
||||||
Query task status to determine what actions to take:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
QLAPI.getCronById({ id: 1 }).then((response) => {
|
|
||||||
const task = response.data;
|
|
||||||
|
|
||||||
console.log('Task name:', task.name);
|
|
||||||
console.log('Is enabled:', task.isDisabled === 0);
|
|
||||||
console.log('Current status:', task.status === 0 ? 'idle' :
|
|
||||||
task.status === 1 ? 'running' : 'queued');
|
|
||||||
|
|
||||||
// Take action based on status
|
|
||||||
if (task.status === 0 && task.isDisabled === 0) {
|
|
||||||
console.log('Task is idle and enabled, ready to run');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
## Complete Example
|
|
||||||
|
|
||||||
See `sample/ql_sample.js` for a complete working example of all the new features.
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
- All methods return Promises
|
|
||||||
- Task IDs are numeric integers
|
|
||||||
- Task status values: 0 (idle), 1 (running), 2 (queued)
|
|
||||||
- Disabled status: isDisabled = 0 (enabled), isDisabled = 1 (disabled)
|
|
||||||
- When searching with `getCrons`, the search applies to name, command, schedule, and labels
|
|
||||||
Loading…
Reference in New Issue
Block a user