我正在尝试建立一个完全独立的比特币支付处理器,以了解更多关于支付处理和比特币网络的信息。假设我有一家卖电子产品的商店。当用户想购买产品时,我的web后端创建了一个订单对象,并将其存储在某个数据库中(Redis、MySQL、MongoDB.)。该对象包含一些通用产品信息和生成的BTC地址。
另一个应用程序(我更希望在NodeJS中编写代码)是周期性地在定义的时间间隔内从同一个数据库中获取对象。它处理支付,如果地址余额与产品价格相匹配,则应该从数据库中删除当前订单,并调用webserver端点来处理成功的支付。
我的问题是,有两个进程访问同一个数据库安全吗?web后端只写到DB,而我的支付处理器则是从它/向它读写。
如果没有,我是否可以使用互斥,或者是否有更好的方法来处理付款而不使用公共API?
发布于 2019-12-10 11:16:35
您需要对数据库进行行级锁定,行级别意味着访问一个记录,当您锁定它时,只有锁定它的程序才能修改它。您必须执行您的编程,以适应两个进程可能同时尝试做同一件事情的可能性。例如:发票,如果流程A创建发票编号10000,流程B创建另一个发票号相同的发票,那么您就有麻烦了。解决方案:您最大限度地处理,获取项目,多少,送货地址等,只有在过程结束锁定,并获得发票号码,并释放您的锁。
https://stackoverflow.com/questions/57844034
复制相似问题