任务调度
介绍
- 平台支持定时任务,可定时执行接口引擎或定制开发的.net dll文件
停止所有任务
sql
-- 执行sql语句
update diy_schedule_job set Status='暂停';
update microi_job_triggers set TRIGGER_STATE='PAUSED';
-- 然后重启microi-api容器删除异常任务
sql
-- 假设任务名为:dnsSync
update from diy_schedule_job set IsDelete = 1 where JobName='dnsSync';
delete from microi_job_cron_triggers where TRIGGER_NAME = 'dnsSync';
delete from microi_job_triggers where JOB_NAME = 'dnsSync';
delete from microi_job_job_details where JOB_NAME = 'dnsSync';自动删除任务重复结果日志
js
// 比如说定时任务执行的是一个接口引擎,我们在接口引擎最后增加以下代码:
// 假设任务名为:dnsSync,我们只保留最近N条重复的相同结果日志
var saveCount = 3;
var taskName = 'dnsSync';
V8.Db.FromSql(`
DELETE FROM diy_schedule_job_log
WHERE Message = '${JSON.stringify(result)}'
AND JobName = '${taskName}'
AND Id NOT IN (
-- 选择创建时间最近的N条记录的ID
SELECT Id FROM (
SELECT Id
FROM diy_schedule_job_log
WHERE Message = '${JSON.stringify(result)}'
AND JobName = ''${taskName}'
ORDER BY CreateTime DESC
LIMIT ${saveCount}
) AS keep_ids
);
`).ExecuteNonQuery();
return result;