|
环境:
两个物理机(192.168.1.1, 192.168.1.2),
192.168.1.1实例下:
库:A ,表a_t1,message(id, msg)
192.168.1.2实例下:
库:B,表b_t1(与A_t1表结构相同),message_applied(id)
192.168.1.1操作流程:
begin;
INSERT INTO a_t1 VALUES(......);
INSERT INTO message "";
commit;
192.168.1.2
for each message in queue
begin;
SELECT count(*) as cnt FROM message_applied WHERE id = message.id;
if cnt = 0 then
SQL operation ......
end
commit;
if 上述事务成功
//dequeue message
DELETE FROM message_applied WHERE id = message.id;
end
end
//其他: 在message表中加一个“处理次数”字段,如果连续处理N次未成功进入“异常处理流程”。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-4-23 17:00
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社