【发布时间】:2017-06-19 20:30:54
【问题描述】:
我在 laravel 5.4 中有一个 api 由一个 android 应用程序使用,问题是我遇到了竞争问题,因为应用程序多次同时发送 2 次相同的请求,在根据。如何在 Laravel 应用程序级别避免这种情况?我无法调整应用程序,因为它是由另一家公司完成的。
作为一种解决方法,我在函数之前随机休眠 1-15 秒,以防止两个请求同时执行。
谢谢!
【问题讨论】:
-
唯一键、事务等。取决于发送的数据类型。
-
这很奇怪;我开发的任何 API 都能够毫无问题地处理并发请求。正在生成什么样的“重复数据”?您的数据库表是否设置为正确处理唯一性(自动递增主键、唯一键等)?
-
你能举例说明处理请求的方法吗?
-
问题是我的 api 获取了一组代码,我需要验证它们是否处于活动状态、已发送、无效以及其他状态。我想我没有说清楚的是Android应用程序同时发送相同的请求。它们不是不同实例的请求,发送数据是相同的。如果发送 10 个不同的不同设备,则 api 没有任何问题。我解决了对同一请求限制每个用户每分钟 1 个请求的问题。