-- 旧系统转运单同步定时任务配置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', 'legacyTransferSyncTask.syncTransferOrders7Days', '0 0 2 * * ?', '3', '1', '0', 'admin', sysdate(), '每天凌晨2点自动同步7天前的旧系统转运单数据。'); -- 说明: -- job_name: 任务名称 - 旧系统转运单同步 -- job_group: 任务组名(DEFAULT为默认组) -- invoke_target: 调用目标字符串(Bean名称.方法名) -- - legacyTransferSyncTask.syncTransferOrders7Days() 同步7天前的转运单数据 -- - legacyTransferSyncTask.syncTransferOrders('7') 也可以使用带参数的方法 -- cron_expression: cron表达式 -- - '0 0 2 * * ?' = 每天凌晨2点执行 -- - '0 0 2 * * ?' = 每天凌晨2点执行 -- - '0 0 3 * * ?' = 每天凌晨3点执行 -- - '0 0 2 1 * ?' = 每月1日凌晨2点执行 -- misfire_policy: 错过执行策略 -- - 1=立即执行 -- - 2=执行一次 -- - 3=放弃执行(推荐) -- concurrent: 是否并发 -- - 0=允许并发 -- - 1=禁止并发(推荐,避免重复同步) -- status: 状态 -- - 0=正常(启用) -- - 1=暂停(停用) -- create_by: 创建者 -- create_time: 创建时间 -- remark: 备注说明 -- 同步逻辑: -- 1. 每天凌晨自动执行同步任务 -- 2. 查询7天前的转运单数据 -- 3. 检查是否已同步过 -- 4. 未同步的转运单数据创建新任务 -- 5. 记录同步日志 -- 监控查询: -- 查看今日转运单同步统计: SELECT COUNT(*) AS total_sync_count, SUM(CASE WHEN task_type = 'EMERGENCY_TRANSFER' THEN 1 ELSE 0 END) AS emergency_transfer_count FROM sys_task WHERE DATE(create_time) = CURDATE() AND task_description LIKE '%从旧系统同步的转运单%'; -- 查看同步失败的任务: SELECT task_id, task_code, task_description, create_time FROM sys_task WHERE task_description LIKE '%从旧系统同步的转运单%' AND task_status = 'ERROR' ORDER BY create_time DESC; -- 查看最近同步的任务: SELECT t.task_id, t.task_code, t.task_description, t.create_time, e.legacy_service_ord_id, e.legacy_dispatch_ord_id FROM sys_task t LEFT JOIN sys_task_emergency e ON t.task_id = e.task_id WHERE t.task_description LIKE '%从旧系统同步的转运单%' ORDER BY t.create_time DESC LIMIT 20; -- 使用建议: -- 1. 建议在业务低峰期执行同步任务(如凌晨2点) -- 2. 可根据实际需求调整同步天数(如改为3天或14天) -- 3. 定期检查同步失败的任务并处理 -- 4. 可通过修改 status=1 临时禁用同步任务 -- 错误处理: -- 1. 如果同步失败,检查: -- - SQL Server连接是否正常 -- - 数据格式是否正确 -- - 新系统字段是否匹配 -- 2. 可通过定时任务日志查看详细错误: -- 系统监控 -> 定时任务 -> 调度日志