-- 旧系统转运任务同步定时任务配置SQL -- 在sys_job表中添加定时任务 -- 急救转运任务自动同步到旧系统 INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark) VALUES ('旧系统转运任务同步', 'DEFAULT', 'legacySystemSyncTask.syncPendingTasks', '0 0/10 * * * ?', '3', '1', '0', 'admin', sysdate(), '每10分钟自动同步未同步成功的急救转运任务到旧系统。默认启用,同步失败的任务会自动重试。'); -- 说明: -- job_name: 任务名称 -- job_group: 任务组名(DEFAULT为默认组) -- invoke_target: 调用目标字符串(Bean名称.方法名) -- - legacySystemSyncTask.syncPendingTasks() 批量同步未同步的任务 -- - legacySystemSyncTask.syncTask('123') 同步指定ID的任务 -- cron_expression: cron表达式 -- - '0 0/10 * * * ?' = 每10分钟执行一次 -- - '0 0/5 * * * ?' = 每5分钟执行一次 -- - '0 0/30 * * * ?' = 每30分钟执行一次 -- - '0 0 * * * ?' = 每小时执行一次 -- misfire_policy: 错过执行策略 -- - 1=立即执行 -- - 2=执行一次 -- - 3=放弃执行(推荐) -- concurrent: 是否并发 -- - 0=允许并发 -- - 1=禁止并发(推荐,避免重复同步) -- status: 状态 -- - 0=正常(启用) -- - 1=暂停(停用) -- create_by: 创建者 -- create_time: 创建时间 -- remark: 备注说明 -- 使用建议: -- 1. 生产环境建议每10-30分钟执行一次,避免频繁请求旧系统 -- 2. 如果旧系统性能较好,可缩短至5分钟 -- 3. 如果同步失败率高,可延长至1小时,并人工介入处理 -- 4. 可通过修改 legacy.system.enabled=false 临时禁用同步功能 -- 定时任务执行逻辑: -- 1. 查询 sync_status = 0(未同步)或 3(同步失败)的任务 -- 2. 逐个调用旧系统接口 admin_save_19.gds -- 3. 每个任务间隔1秒,避免并发过高 -- 4. 更新同步状态和 legacy_service_ord_id -- 5. 记录错误信息到 sync_error_msg 字段 -- 监控查询: -- 查看待同步任务数: -- SELECT COUNT(*) FROM sys_task_emergency WHERE sync_status IN (0, 3); -- 查看今日同步统计: -- SELECT -- sync_status, -- CASE sync_status -- WHEN 0 THEN '未同步' -- WHEN 1 THEN '同步中' -- WHEN 2 THEN '同步成功' -- WHEN 3 THEN '同步失败' -- END AS status_name, -- COUNT(*) AS count -- FROM sys_task_emergency -- WHERE DATE(create_time) = CURDATE() -- GROUP BY sync_status;