gpt4 book ai didi

sql-server - 以某种原子方式写入数据库和 rfid 卡的优雅解决方案

转载 作者:搜寻专家 更新时间:2023-10-30 21:47:37 24 4
gpt4 key购买 nike

假设您要将一些数据写入 RFID 卡并将一些数据写入数据库。理论上,与数据库的连接随时可能断开,卡与读卡器之间的连接也可能随时断开。您的目标是以一种有点原子的方式设计它,您最终要么两者都被写入,要么一个都不被写入。

有什么优雅的方法可以解决这个问题吗?任何提示表示赞赏:)

(我正在使用 MS SQL Server 和 Windows 智能卡模块 (Winscard.dll),以防有任何不同)

最佳答案

在开始更新 RFID 卡之前插入一条记录,然后在完成后更新这条记录。通过这种方式,您还可以发现未完成的更新,并采取相应措施。

  1. 将状态为“不完整”的记录插入数据库。给它一个时间戳、一个唯一 ID 以及您需要的任何其他相关信息,以唯一地描述 RFID 写入尝试
  2. 写入RFID卡
  3. 用“完成”或“失败”状态更新在步骤 1 中插入的记录

然后有一个在超时期限过后解决不完整记录的过程(通过重试,或您想要做的任何其他事情)。

当您与您的 RFID 卡通信时,不要试图保持打开数据库事务,因为这将:

  1. 给你不需要的(并且可能很长)数据库锁
  2. 失败时回滚,这将删除您尝试对 RFID 卡做某事的所有证据

关于sql-server - 以某种原子方式写入数据库和 rfid 卡的优雅解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com