首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何管理并发Http上的数据触发Azure函数?

问如何管理并发Http上的数据触发Azure函数?
EN

Stack Overflow用户
提问于 2022-03-31 09:30:57
回答 1查看 51关注 0票数 0

Azure函数中有以下代码:

代码语言:javascript
复制
string id = Guid.NewGuid().ToString();
myObject.id = id;

现在,如果我同时进行多个http调用,并发调用将最终具有相同的id,我期望它们具有不同的id。

我试过改变host.json,但没有运气。无论如何,以下是host.json中的代码:

代码语言:javascript
复制
{
  "version": "2.0",
  "extensions": {
    "http": {
      "maxConcurrentCalls": 1
    }
  }
}

Azure函数版本:2 Dotnet版本: 5.0

我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-31 10:08:29

摘自Guid.NewGuid法文档。

这是一个方便的静态方法,您可以调用它来获得一个新的Guid。该方法创建第4版通用唯一标识符(UUID),如RFC 4122,Sec所述。4.4。返回的Guid保证不等于Guid.Empty。 在Windows上,此函数封装对CoCreateGuid函数的调用。生成的GUID包含122位强熵。 在非Windows平台上,从.NET 6开始,该函数调用操作系统的底层加密安全伪随机数生成器(CSPRNG)生成122位强熵。在早期版本的.NET中,熵并不保证由CSPRNG生成。

提交给该委员会的RFC规定:

版本4 UUID用于从真正随机或伪随机数生成UUID。 该算法如下:

  • 将clock_seq_hi_and_reserved的两个最重要位(位6和7)分别设置为零和1。
  • 将time_hi_and_version字段的四个最重要位(位12到15)设置为4.1.3节中的4位版本号。
  • 将所有其他位设置为随机(或伪随机)选定的值。

基于这些规范,对相同Azure函数的两个调用生成相同的GUID应该是不可能的。一些本地测试表明(在可测试的请求数量中)是不可能的。

您可能在某个地方有一个静态属性或对象,这就是您的is相同的原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71690140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档