我有一个设计模式一直在苦苦挣扎,如何最好地防止数据重复提交。
以下是步骤:
1.客户端提交带有唯一GUID的数据(由客户端生成的GUID-保证唯一)。 2.服务器端软件确保客户端guid在数据库中不存在。 3.开始事务。 4.处理数据(根据有效负载需要1-20秒)。 5.提交事务。
以下是几种情况: 如果客户端使用GUID“1”提交数据,然后在原始数据提交的步骤(5)之前再次使用GUID“1”提交数据,则事务将被处理两次。
在不使用信号量或阻塞的情况下,最佳的设计模式是什么?用户应该能够重新提交,以防第一次提交失败(服务器端硬件问题等)。
谢谢!
以下是步骤:
1.客户端提交带有唯一GUID的数据(由客户端生成的GUID-保证唯一)。 2.服务器端软件确保客户端guid在数据库中不存在。 3.开始事务。 4.处理数据(根据有效负载需要1-20秒)。 5.提交事务。
以下是几种情况: 如果客户端使用GUID“1”提交数据,然后在原始数据提交的步骤(5)之前再次使用GUID“1”提交数据,则事务将被处理两次。
在不使用信号量或阻塞的情况下,最佳的设计模式是什么?用户应该能够重新提交,以防第一次提交失败(服务器端硬件问题等)。
谢谢!