Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net web服务对进程数据库队列的同步调用_C#_Asp.net_Sql Server_Multithreading_Wcf - Fatal编程技术网

C# ASP.Net web服务对进程数据库队列的同步调用

C# ASP.Net web服务对进程数据库队列的同步调用,c#,asp.net,sql-server,multithreading,wcf,C#,Asp.net,Sql Server,Multithreading,Wcf,我有一个asp.net web服务,它类似于预订系统,不能由多人预订同一座位,预订资格基于SQL server中的其他一些表值。我计划使用前面提到的SQL server队列处理。我的客户希望在同步调用中执行此操作,这意味着我们希望在相同的web服务方法调用中得到结果。我的问题是,允许同步方法调用处理队列并等待队列返回值(通过在大约一个时间跨度内的循环)的效率有多高。请建议实现这一目标的最佳方法 您正在步入新的领域。你的主要目标是确保没有座位可以预定两次。您应该重新考虑使用队列的方法是解决此问题的

我有一个asp.net web服务,它类似于预订系统,不能由多人预订同一座位,预订资格基于SQL server中的其他一些表值。我计划使用前面提到的SQL server队列处理。我的客户希望在同步调用中执行此操作,这意味着我们希望在相同的web服务方法调用中得到结果。我的问题是,允许同步方法调用处理队列并等待队列返回值(通过在大约一个时间跨度内的循环)的效率有多高。请建议实现这一目标的最佳方法

您正在步入新的领域。你的主要目标是确保没有座位可以预定两次。您应该重新考虑使用队列的方法是解决此问题的合适方法。队列对于在后台任务中高效地使用处理资源非常有用。对于实时处理(如您的),它将产生更多需要解决的问题

似乎您希望避免多个用户两次尝试访问同一座位时出现的竞争情况。队列不能解决问题,您只需将其移动到Enquence阶段。首先进入队列的人获胜。最后,你增加了一个不必要的复杂因素,这并没有给你带来任何好处

解决问题的一个更简单的方法是在DB上创建一个唯一的密钥,确保没有座位可以保留两次。一旦您尝试预订一个刚刚有人坐过的座位,您将得到一个SQLException。然后,您可以提示用户座椅已入座