ScheduleJobHelper
ScheduleJobHelper 提供平台定时任务的外部管理能力,包括创建、编辑、启用、停用、删除以及按 ID 查询定时任务定义。
概述
Chameleon 平台的定时任务由调度节点在后台周期触发执行。通过 ScheduleJobHelper,开发者可以在 C# 脚本或微服务中程序化地管理定时任务。执行参数使用字典(Dictionary<string,string>)传递,序列化存储等细节由平台内部处理,开发者无需手动拼接 JSON。
API 方法
创建定时任务
CreateScheduleJobAsync — 创建定时任务
创建一个定时任务,创建后即为启用状态,返回任务 ID。
Task<string> CreateScheduleJobAsync(ScheduleJobCreateRequest request);
主要参数:
| 参数 | 说明 |
|---|---|
| Name | 任务名称 |
| Description | 任务描述(可选) |
| MetaInterfaceId | 任务触发时调用的平台接口 ID |
| CrontabExpression | Quartz Cron 表达式 |
| Params | 执行参数(key/value 字典),会填充到接口执行上下文 |
示例:
var jobId = await sdk.ScheduleJobHelper.CreateScheduleJobAsync(new ScheduleJobCreateRequest
{
Name = "销售报表统计",
Description = "每天生成销售统计报表",
MetaInterfaceId = "report-generate-interface-id",
CrontabExpression = "0 0 9 * * ?",
Params = new Dictionary<string, string>
{
["reportType"] = "daily",
["deptId"] = "10001"
}
});
sdk.Logger.LogInformation($"已创建定时任务,任务ID: {jobId}");
编辑定时任务
EditScheduleJobAsync — 编辑定时任务
编辑已有定时任务,其中 Params 为全量替换。
Task EditScheduleJobAsync(ScheduleJobEditRequest request);
主要参数:
| 参数 | 说明 |
|---|---|
| Id | 任务 ID |
| Name | 任务名称 |
| Description | 任务描述 |
| MetaInterfaceId | 平台接口 ID |
| CrontabExpression | Cron 表达式 |
| Params | 执行参数(全 量替换) |
示例:
await sdk.ScheduleJobHelper.EditScheduleJobAsync(new ScheduleJobEditRequest
{
Id = jobId,
Name = "销售报表统计",
CrontabExpression = "0 30 9 * * ?",
MetaInterfaceId = "report-generate-interface-id",
Params = new Dictionary<string, string>
{
["reportType"] = "weekly"
}
});
启用 / 停用定时任务
EnableScheduleJobAsync — 启用定时任务
Task EnableScheduleJobAsync(string jobId);
DisableScheduleJobAsync — 停用定时任务
Task DisableScheduleJobAsync(string jobId);
示例:
// 停用 后可通过同一 ID 再次启用
await sdk.ScheduleJobHelper.DisableScheduleJobAsync(jobId);
await sdk.ScheduleJobHelper.EnableScheduleJobAsync(jobId);