web api 如何实现多用户同时请求时,web api如何实现队列处理

foshanfdhjp 2014-09-24 05:17:45
web api 如何实现多用户同时请求时,web api如何将请求加入到队列中,进行队列先后处理,工作原理是怎样的,因为网上的web api资料真的不是很多,没有比较浅显的比喻进行讲解,比如有10个水果,如果多用户请求同时从web api 获取时,就要看先后,如果第一个拿了5个,第二个请求六个,就会返回获取水果失败,后面的再继续
...全文
5975 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用数据库事务,跟api没关系吧
by_封爱 2016-12-08
  • 打赏
  • 举报
回复
lock不是为了解决 在同一代码中,先执行后执行么. 在web中可以吗? 你们一个个说的都这么厉害. 不知道都自己测试了没有... 这种事情 就要呼叫 @以专业开发人员为伍 给我们做下专业的讲解. 也就是 lock在web并发中 是否有用的问题..
buster2014 2016-12-07
  • 打赏
  • 举报
回复
可以参考生产者消费者模式
knife_s 2014-09-27
  • 打赏
  • 举报
回复
这就是可用量的问题, 加锁,减去拿走的,返回可用量,解锁
哋岼線 2014-09-27
  • 打赏
  • 举报
回复
引用 8 楼 u011710947 的回复:
[quote=引用 7 楼 u011710947 的回复:] 统一楼上的 这事跟webapi没啥关系 你内部逻辑用个lock
统一 -> 同意[/quote] 同意,加锁,线程同步问题.
  • 打赏
  • 举报
回复
引用 7 楼 u011710947 的回复:
统一楼上的 这事跟webapi没啥关系 你内部逻辑用个lock
统一 -> 同意
  • 打赏
  • 举报
回复
统一楼上的 这事跟webapi没啥关系 你内部逻辑用个lock
xiaolll028 2014-09-26
  • 打赏
  • 举报
回复
webapi 本来就是多线程,怎么能这样玩? 你在其内部可以使用一个static lock 或者调用其他单例 再或者使用数据库等
rtdb 2014-09-25
  • 打赏
  • 举报
回复
引用 4 楼 foshanfdhjp 的回复:
web api 网上介绍的,大多数直接调用自定义类里的Action来返回数据,那如何web api 能够实现和服务端那样进行处理,接收到请求,放入队列中,有个定时器循环读取,进行按队列顺序处理返回 。 web api 是否能够实现这种处理,能实现的话,工作原理是怎样的
WEB都是多线程并发的,不适合你说的队列模式。 你所需要的并发的数据管理,加锁可以了。
foshanfdhjp 2014-09-24
  • 打赏
  • 举报
回复
web api 网上介绍的,大多数直接调用自定义类里的Action来返回数据,那如何web api 能够实现和服务端那样进行处理,接收到请求,放入队列中,有个定时器循环读取,进行按队列顺序处理返回 。 web api 是否能够实现这种处理,能实现的话,工作原理是怎样的
foshanfdhjp 2014-09-24
  • 打赏
  • 举报
回复
第二用户的请求必须等到第一个处理完后,才能知道是否可以拿到6个水果,打错字了
foshanfdhjp 2014-09-24
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
拿水果的成功失败是靠数据库或者程序内部处理并发来控制的吧,并不是去控制web api本身的请求数量
单多个用户同时请求了 Action ,水果是比较简单的比较,忘了加上一个问题,单我这个Action处理时,因为当中有很多条件对比等,可能会有些耗时处理数据,比如在第一个在处理拿5个水果时有一定的耗时,第一用户的请求必须等到第一个处理完后,才能知道是否可以拿到6个水果
xdashewan 2014-09-24
  • 打赏
  • 举报
回复
拿水果的成功失败是靠数据库或者程序内部处理并发来控制的吧,并不是去控制web api本身的请求数量

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧