首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >防止重复订单被接收到我的系统的设计理念

防止重复订单被接收到我的系统的设计理念
EN

Stack Overflow用户
提问于 2016-02-19 06:00:09
回答 1查看 361关注 0票数 0

我有一个网络系统,我建立了,这是一个为我们的客户在线订购门户。我们存储他们的库存,他们通过这个门户下订单。

我们对客户参考号进行重复检查,以便同一订单不能两次发送,但是我们遇到了一些问题,如果客户多次将订单发送到我们的API (如果在毫秒内,如果是这样的话),我们的系统没有足够的时间将订单标记为已收到,因此,系统允许重复。

我正在努力决定解决这个问题的方法。我不想对此使用数据库约束,因为我发现这是一个应用程序问题,而不是数据库问题,并且我认为这不是一个好的解决方案。

有没有关于如何解决这个问题的设计想法?我想到的一个解决方案是使用一个带有参考号的互斥锁,这样如果一个互斥锁被锁定,那么它可能会在一秒钟内重试,依此类推。我的理解是,互斥几乎是愚蠢的,因为它们是由文件系统强制执行的?

任何想法都将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2016-02-19 06:29:56

您可以尝试使用nonce策略。其想法是将随机数设置为隐藏的表单字段,并将其存储在会话中。开机自检时验证id。用户必须故意刷新页面以获得新的id并能够第二次发布。

更新

因此,既然您使用的是API服务,那么我不得不说您可以使用批处理系统。订单进入并存储在等待区。chron作业在批处理中运行,并执行必要的修剪操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35493293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档