-- ============================================================ -- 无交易记录自动结算 - 定时任务初始化 -- 表:sys_job(若依 Quartz) -- 调用目标:jsowellTask.autoSettleOrdersWithoutTransactionRecord() -- -- 说明: -- 1) 默认 status=1(暂停),灰度验证后再改为 0(正常) -- 2) concurrent=1(禁止并发) -- 3) 可重复执行:已存在同名调用目标则跳过插入 -- 4) 纯 SQL 插入后,若应用已在运行,建议: -- - 重启应用,或 -- - 到「定时任务」页面对该任务执行一次「修改保存/恢复」以同步到调度器 -- 5) 业务总开关仍由 auto-settle.enabled 控制,任务跑起来但 enabled=false 只会打“功能未启用”日志 -- ============================================================ -- 可选:执行前先查是否已存在 -- SELECT job_id, job_name, invoke_target, cron_expression, concurrent, status -- FROM sys_job -- WHERE invoke_target = 'jsowellTask.autoSettleOrdersWithoutTransactionRecord()'; INSERT INTO sys_job ( job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark ) SELECT '无交易记录自动结算', 'DEFAULT', 'jsowellTask.autoSettleOrdersWithoutTransactionRecord()', '0 0/10 * * * ?', -- 每 10 分钟 '3', -- 错过不立即补跑(等下一周期) '1', -- 禁止并发 '1', -- 暂停(灰度验证后再启用) 'admin', NOW(), '扫描停止超阈值且无交易记录的待结算订单,按最后实时数据自动结算。业务开关:auto-settle.enabled;建议先灰度站点。' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_job WHERE invoke_target = 'jsowellTask.autoSettleOrdersWithoutTransactionRecord()' ); -- 启用任务(灰度/配置验证通过后执行) -- UPDATE sys_job -- SET status = '0', -- update_by = 'admin', -- update_time = NOW() -- WHERE invoke_target = 'jsowellTask.autoSettleOrdersWithoutTransactionRecord()'; -- 回滚/删除(如需) -- DELETE FROM sys_job -- WHERE invoke_target = 'jsowellTask.autoSettleOrdersWithoutTransactionRecord()';