新增日终任务
1. 查询tb_job_group 确认执行器id2. 确定任务在日终任务当中位置。触发任务,依赖任务,子任务。3. 插入tb_job_task* id 字段 主键id 由系统名+分组+排序组成,后面必须是数据字结尾* JOB_GROUP 字段 对应执行器id* executor_handler 字段,与调度任务注解@JobHandler(value="demo3JobHandler") 值相同。* job_cron 字段值默认 0/1 * * * * ? * 意思是 1秒触发;Linux|014|cron表达式详解 。* child_jobid 字段, 触发任务id,多个任务用英文 逗号隔开“,”* dependency_id 字段,依赖任务,多个任务用英文 逗号隔开“,”。当父任务执行完后,触发子任务时,检查依赖任务是否执行成功。所有依赖执行成功才能执行当前任务。
insert into tb_job_task (ID, JOB_GROUP, JOB_CRON, JOB_DESC, ADD_TIME, UPDATE_TIME, AUTHOR, ALARM_EMAIL, EXECUTOR_ROUTE_STRATEGY, EXECUTOR_HANDLER, EXECUTOR_PARAM, EXECUTOR_BLOCK_STRATEGY, EXECUTOR_TIMEOUT, EXECUTOR_FAIL_RETRY_COUNT, GLUE_TYPE, GLUE_SOURCE, GLUE_REMARK, GLUE_UPDATETIME, CHILD_JOBID, TRIGGER_STATUS, TRIGGER_LAST_TIME, TRIGGER_NEXT_TIME, JOB_CODE, UUID, STEP_ID, DEPENDENCY_ID, PARALLEL_TYPE, FIELD_01, FIELD_02, FIELD_03, STATUS, FIRST_FLAG)values ('Aplus030220', 1002, '0/1 * * * * ? *', '贴现每日摊销', to_date('03-06-2020 21:20:29', 'dd-mm-yyyy hh24:mi:ss'), to_date('03-06-2020 21:20:29', 'dd-mm-yyyy hh24:mi:ss'), 'Aplus', null, 'ROUND', 'dMDiscItrAdjJobHandler', null, 'SERIAL_EXECUTION', 0, 0, 'BEAN', '<CLOB>', 'GLUE代码初始化', to_date('19-01-2020 22:23:59', 'dd-mm-yyyy hh24:mi:ss'), 'Aplus030240', 0, 0, 0, '57', null, null, null, 'F', null, null, null, 0, null);
4. 更新tb_job_task 父任务child_jobid子节点update tb_job_task t set t.child_jobid = t.child_jobid || ',' || '新任务id' where t.id = '父人id';
特殊情况:
若新增任务是需要放在第一个任务触发。
5. 查询根任务select * from tb_job_task t where t.first_flag = '1';
将新增任务first_flag 跟新为 1,旧任务first_flag 更新为空 null。
检查是否添加成功
--检查树形结构是否完成select jt.id,jt.child_jobid,jt.dependency_id,jt.*from tb_job_task jtstart with jt.id in (select t.id from tb_job_task t where t.first_flag = '1')connect by prior jt.child_jobid like '%'||jt.id||'%';
