gpt4 book ai didi

WCF InstanceContextMode : Per Call vs. Single 在这种情况下

转载 作者:行者123 更新时间:2023-12-02 02:24:12 25 4
gpt4 key购买 nike

我想避免在我的系统中生成重复的数字。

CreateNextNumber() 将:

  1. 找到最后创建的号码。
  2. 将值加一。
  3. 用新数字更新数据库中的值。

我想避免两个客户端同时调用这个方法。我担心他们会提取最后创建的相同数字,将其递增 1,然后为两个客户返回重复的数字。

问题:

  1. 我需要在这里使用单一模式吗?如果可能,我宁愿使用 Per Call。
  2. 默认并发模式是单一的。我不明白 Per Call 如何创建多个实例,但只有一个线程。这是否意味着即使创建了多个实例,一次也只有一个客户端可以调用其实例中的方法?

最佳答案

如果您使用 InstanceContextMode.Single 和 ConcurrentcyMode.Single,您的服务将一次处理一个请求,因此会为您提供此功能 - 然而,这个问题最好在数据库中处理

几个选项:

  1. 将需要唯一编号的字段作为标识列,数据库保证不会出现重复值
  2. 将控制值的递增包装在使用隔离级别 RepeatableRead 的存储过程中,并在事务中读取、递增和写入

对于您的问题,您可以在 instancing and concurrency 上找到我的博客文章有用

关于WCF InstanceContextMode : Per Call vs. Single 在这种情况下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6708360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com