我有一个asp.net web服务,它就像一个预订系统,不能保留多个人的同一个座位,并且预留的资格是基于其他一些表值在SQL服务器中。我打算使用SQL服务器队列处理,如here所述。我的客户希望在同步调用中执行此操作,这意味着我们希望在相同的Web服务方法调用中获得结果。我的问题是,它允许一个同步的方法调用来处理一个队列,并等待队列返回值(通过一个时间跨度内的循环等等)有多高效。请建议最佳方法来实现这一点。ASP.Net web服务同步调用来处理数据库队列
0
A
回答
1
您正在加入XY problem trap。你的主要目标是确保没有座位可以预留两次。您应该重新考虑使用队列的方法是解决此问题的适当方法。一个队列非常适合在后台任务中高效地使用处理资源。对于实时处理(如您的),它会产生更多的问题,并解决它。
看起来好像你想避免当多个用户试图访问同一个座位两次时出现的竞态条件。队列不能解决问题,只需将其移至入场阶段即可。首先进入队列的人获胜。最后,你添加了一个不必要的复杂功能,不会带来任何好处。
解决您问题的更简单方法是在您的数据库上创建一个唯一的密钥,以确保没有座位可以预留两次。一旦您尝试预定刚才拍摄的座位,您将收到error number 2627的SQLException。然后,您可以提示用户座位已被占用。
相关问题
- 1. 我正在处理数据同步服务,使用web api
- 2. Laravel 5.2:使用Laravel队列服务处理数据库插入
- 3. 异步任务来处理多个数据库调用
- 4. 调度队列的异步Web服务调用
- 5. 本地数据库与远程web服务数据库同步
- 6. ASP.NET异步Web服务调用问题
- 7. 处理来自Web服务
- 8. 多个异步jquery调用似乎由ASP.NET服务器同步处理
- 9. 本地核心数据数据库与Web服务同步
- 10. Swift:同步Web服务调用
- 11. Web服务调用的同步性
- 12. Flex中的同步Web服务调用
- 13. 跨进程同步Web服务调用
- 14. 同步Web服务调用超时
- 15. 并行处理数据库队列
- 16. 使用其Web服务器的iOS数据库同步
- 17. MVC3门户网站处理来自Web服务的JSON数据
- 18. 来自JS调用的ASP.NET Web服务
- 19. 同步android应用程序与Web服务器数据库的数据库
- 20. Microsoft SQL数据同步代理:服务器和数据库
- 21. 处理异步ASMX Web服务异常
- 22. 异步web服务调用
- 23. 异步Web服务调用
- 24. 调用Web服务异步
- 25. 异步调用Web服务
- 26. 在碎片中处理web服务调用和缓存数据
- 27. 处理BLOB数据的Web服务
- 28. 流星客户端同步服务器数据库调用
- 29. 未处理Azure ASP.NET REST Web服务调用
- 30. 同步数据库与服务器