【问题标题】:Crypto Payment Gateway - DB Access Concurrency加密支付网关 - 数据库访问并发
【发布时间】:2019-09-08 17:06:16
【问题描述】:

我正在尝试设置一个完全独立的比特币支付处理器,以了解有关支付处理和比特币网络的更多信息。假设我有一家卖电子产品的商店。当用户想要购买产品时,我的 Web 后端会创建一个订单对象,并将其存储在某个数据库(Redis、MySQL、MongoDB ......)中。该对象包含一些通用产品信息和生成的 BTC 地址。

另一个应用程序,我希望在 NodeJS 中编写代码,在定义的时间间隔内定期从 same 数据库中获取对象。它处理付款,如果地址余额与产品价格匹配,它应该从数据库中删除当前订单并调用网络服务器端点来处理成功的付款。

我的问题是,让两个进程访问同一个数据库是否安全? Web 后端仅写入数据库,而我的支付处理器正在读取和写入数据库。

如果没有,我是否可以使用互斥锁,或者有没有更好的方法来处理付款而不使用公共 API?

【问题讨论】:

    标签: javascript database cryptocurrency


    【解决方案1】:

    您需要对数据库进行行级锁定,行级意味着访问一条记录,当您锁定它时,只有锁定它的程序才能修改它。您必须进行编程以适应 2 个进程可能同时尝试执行相同操作的可能性。举个例子:开票,如果流程 A 创建发票编号 10000 并且流程 B 创建另一个具有相同编号的发票,那么您就有麻烦了。解决方案:您最多进行处理、取件、多少、送货地址等,并且仅在您锁定并获得发票编号并释放您的锁定的过程的最后。

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 2011-03-16
      • 2012-11-11
      • 1970-01-01
      • 2011-02-25
      • 2023-03-23
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      相关资源
      最近更新 更多