Skip to content
当前页大纲

任务调度

介绍

  • 平台支持定时任务,可定时执行接口引擎或定制开发的.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;

MIT License.