我有一个产品价格的MySQL数据库,从现在开始我想用这些值同步另一个数据库,但是这个其他数据库不在我的服务器中,我只能通过Web服务更新...
有没有办法让这两个操作(更新我的数据库并调用其他数据库的Web服务也更新)原子?有一天,当服务器试图调用Web服务来更新它时,我不想发现第二个数据库已关闭,因此,它与我当前的数据库没有相同的值。
顺便说一句,我正在使用PHP。
非常感谢。
答案 0 :(得分:1)
您对这些问题的回答可能有助于思考最佳解决方案 -
或者是否可以编辑单个价格并且相同的更改必须同时生效或根本不生效(如果第二个服务器已关闭)?
如果第二台服务器关闭,第一台服务器上的回滚更改,您想做什么?
如果网络服务回复 - 是否成功更新了产品价格,事情就变得非常简单了。这是让它看起来像原子的一种方法 -
price_backup
和lock_item
,其中存储了所有商品价格。lock_item
= true
,以便在此期间无法购买该项目(以防止不一致)。price_backup
字段中,然后调用Web服务进行更新并检查响应。lock_item
,否则只需重置锁定。此方法可确保跨服务器的相同值。但是,可能有更好的方法