wlzboy
4 天以前 cfe0b79fbea0fb1d7a5a796e71ada7d3b7812046
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
-- 支付信息和附加费用同步定时任务配置SQL
-- 在sys_job表中添加定时任务
 
-- 1. 支付信息同步(新系统 -> 旧系统)
INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)
VALUES 
('支付信息同步到旧系统', 'DEFAULT', 'legacySystemSyncTask.syncPaymentToLegacy', '0 0/10 * * * ?', '3', '1', '0', 'admin', sysdate(), 
'每10分钟自动同步新系统未同步的支付成功记录到旧系统PaidMoney表。同步条件:pay_status=PAID且sync_status=0或3。');
 
-- 2. 支付信息反向同步(旧系统 -> 新系统)
INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)
VALUES 
('支付信息从旧系统同步', 'DEFAULT', 'legacySystemSyncTask.syncPaymentFromLegacy', '0 0/15 * * * ?', '3', '1', '0', 'admin', sysdate(), 
'每15分钟自动同步旧系统PaidMoney表最近7天的支付记录到新系统。只同步在新系统中存在对应转运任务(ServiceOrdID和DispatchOrdID匹配)的记录。');
 
-- 3. 附加费用同步(新系统 -> 旧系统)
INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)
VALUES 
('附加费用同步到旧系统', 'DEFAULT', 'legacySystemSyncTask.syncAdditionalFeeToLegacy', '0 0/10 * * * ?', '3', '1', '0', 'admin', sysdate(), 
'每10分钟自动同步新系统未同步的附加费用记录到旧系统PaidMoney_Add表。同步条件:sync_status=0或3。');
 
-- 4. 附加费用反向同步(旧系统 -> 新系统)
INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)
VALUES 
('附加费用从旧系统同步', 'DEFAULT', 'legacySystemSyncTask.syncAdditionalFeeFromLegacy', '0 0/15 * * * ?', '3', '1', '0', 'admin', sysdate(), 
'每15分钟自动同步旧系统PaidMoney_Add表最近24小时的附加费用记录到新系统。只同步在新系统中存在对应转运任务(ServiceOrdID和DispatchOrdID匹配)的记录。');
 
-- 说明:
-- job_name: 任务名称
-- job_group: 任务组名(DEFAULT为默认组)
-- invoke_target: 调用目标字符串(Bean名称.方法名)
--   支付同步方法:
--   - legacySystemSyncTask.syncPaymentToLegacy() 新系统 -> 旧系统
--   - legacySystemSyncTask.syncPaymentFromLegacy() 旧系统 -> 新系统
--   附加费用同步方法:
--   - legacySystemSyncTask.syncAdditionalFeeToLegacy() 新系统 -> 旧系统
--   - legacySystemSyncTask.syncAdditionalFeeFromLegacy() 旧系统 -> 新系统
-- 
-- cron_expression: cron表达式
--   - '0 0/10 * * * ?' = 每10分钟执行一次(推荐用于新系统到旧系统的同步)
--   - '0 0/15 * * * ?' = 每15分钟执行一次(推荐用于旧系统到新系统的同步)
--   - '0 0/5 * * * ?' = 每5分钟执行一次(仅在同步要求高时使用)
--   - '0 0/30 * * * ?' = 每30分钟执行一次
-- 
-- misfire_policy: 错过执行策略
--   - 1=立即执行
--   - 2=执行一次
--   - 3=放弃执行(推荐)
-- 
-- concurrent: 是否并发
--   - 0=允许并发
--   - 1=禁止并发(推荐,避免重复同步和数据冲突)
-- 
-- status: 状态
--   - 0=正常(启用)
--   - 1=暂停(停用)
 
-- 使用建议:
-- 1. 新系统到旧系统同步(10分钟):
--    - 用户操作后需快速同步到旧系统供其他业务使用
--    - 未同步记录会自动重试
-- 
-- 2. 旧系统到新系统同步(15分钟):
--    - 仅同步存在对应转运任务的记录(验证ServiceOrdID和DispatchOrdID)
--    - 支付记录查询最近7天
--    - 附加费用查询最近24小时
--    - 避免同步无效的孤立数据
-- 
-- 3. 性能优化:
--    - 每批次限制100条记录
--    - 每条记录间隔1秒
--    - 禁止并发执行
-- 
-- 4. 监控建议:
--    - 定期检查sync_status=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_payment
-- WHERE pay_status = 'PAID'
-- GROUP BY sync_status;
 
-- 查看附加费用同步状态:
-- 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_additional_fee
-- GROUP BY sync_status;
 
-- 查看今日同步失败的记录:
-- SELECT * FROM sys_task_payment 
-- WHERE sync_status = 3 AND DATE(sync_time) = CURDATE();
 
-- SELECT * FROM sys_task_additional_fee 
-- WHERE sync_status = 3 AND DATE(sync_time) = CURDATE();