Azure Blob 和队列线程安全

2024-01-22

我需要一些帮助来理解 azure CloudBlobClient、CloudQueueClient 和 CloudBlob 类中的线程安全性。

我正在开发一个辅助角色,其中包括多个独立的作业处理器,其中每个作业处理器从特定队列读取数据并写入/更新到一些可能相同的 blob 容器。

我想确保这些作业处理器不会互相干扰。

1> 如何在不使用任何类型的锁的情况下确保这种情况?如果我为每个作业处理器(都位于同一进程中)分配单独的 CloudBlobClient 和 CloudQueueClient,是否足以说它们彼此独立,并且因为每个作业处理器都使用单独的客户端实例,所以它们不会运行彼此之间到底有什么关系?

2> 在同一作业处理器中,如果我尝试使用 Parallel.ForEach 在 CloudBlobClient 上实现并行性,以并行调用 GetBlobReference 或 UploadText,我是否需要合并某种同步,或者这些方法线程安全吗? Azure 文档说它们不是,但我在网上看到的大多数示例似乎都没有对这些方法应用任何类型的同步机制。实现这一目标的最佳方法是什么?我的意思是使用一个 CloudBlobClient 并并行调用 GetBlobReference 或 UploadText 的最佳方式?


我看了一下CloudBlobClient MSDN 上的文档 http://msdn.microsoft.com/en-us/library/ee772850.aspx它说的是:

此类型的任何公共静态(在 Visual Basic 中为共享)成员都是线程安全的。不保证任何实例成员都是线程安全的。

由于这不是静态成员,因此不能保证线程安全。如果您想确保您不会被 MS 在存储客户端库中可能遗漏的任何线程问题所困扰,那么是的,您应该确保每个线程都有自己的客户端(也许创建一个线程静态 http://msdn.microsoft.com/en-us/library/system.threadstaticattribute.aspx多变的)。

话虽如此,我已经使用了CloudBlobClient上传多个项目Parallel.ForEach不会造成任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure Blob 和队列线程安全 的相关文章

随机推荐

  • tomcat websocket servlet监听端口

    我正在尝试编写一个使用的 servletorg apache catalina websocket WebSocketServlet 我找到了一个 websocket 聊天的示例 但我不知道如何指定 websocket 服务器的侦听端口 在
  • 如何隐藏 TVirtualStringTree 节点?

    如果我没记错的话 在一个节点中不可能有不可见的节点 TVirtualStringTree 树视图 因为没有启用 可见或其他 属性来这样做 我的说法正确吗 如果是 我如何设法拥有不可见的节点 我的树的结构 One Node Another n
  • Android:如何获取当前主题的资源ID?

    在 Android 中 您可以获取 Activity 的当前主题Resource Theme对象来自getTheme 另外 您可以通过其他主题的资源 ID 将主题设置为不同的主题 如下所示setTheme R style Theme MyT
  • 无法从tensorflow.keras.metrics导入指标

    我想编写一个我正在关注的自定义指标评估器这个链接 https www tensorflow org beta guide keras training and evaluation specifying a loss metrics and
  • Django runserver 在开发中不提供静态文件

    我正在使用 Djangorunserver为了我的发展 当我部署到生产服务器时 我可以看到所有静态文件 但看不到本地计算机上的文件 I did collectstatic我已经设置了DEBUG True 我在网上找到了很多不同的意见 其中最
  • mpi 中的 darray 和 subarray 有什么区别?

    我有一个用于并行编程类的并行 I O 项目 并且我必须实现派生数据类型 我不太清楚darray和subarray之间的区别 darray 是否可以从动态分配的数组派生 主要区别是什么 子数组可让您描述较大多维数组的单个块 切片 如果每个 M
  • 使用“Microsoft Print to PDF”和 Java 将文档转换为 PDF

    我目前正在 Microsoft Windows 主机上测试将 RTF DOC 文档转换为 PDF 我有一段使用 Microsoft Word API 的工作和平代码 但由于许可证成本 我想摆脱它 我的想法是 只需将 RTF 发送 到 Mic
  • 如何删除git中未暂存的更改[换行符差异]?

    这很令人沮丧 我根本找不到如何处理这个问题的正确答案 我正在执行变基操作 但这只是发生此问题的众多场景之一 并且我有大量 已更改但未更新 的文件 除了换行符之外没有任何区别 git diff b 什么也没有返回 现在我只想删除更改并将文件保
  • 异步瀑布相当于 Q

    我有一个页面 它是帐户设置页面 在其中 我允许我的用户更新他们的头像 如果他们附加了图像 更改他们的电子邮件 如果已更改为原始电子邮件 以及更改他们的名称和密码 现在 我正在使用异步waterfall方法 但我将 async 替换为 Q 因
  • 在 SciTE 中重新格式化 80 列中的文本(或者更好的是 LaTeX)

    我最近在 Lix 这样的所见即所得编辑器的帮助下开始研究 LaTeX 现在我开始在 Sci TE 中编写 tex 文件 它已经具有语法高亮显示 并且我调整了 tex properties 文件以在 Windows 中工作 显示 Go 上的预
  • Swift 类不可构造

    我正在按照 iBook 进行快速编程 但是当我尝试使用 var 构造一个类时出现错误 这是一个结构和一个类 struct Resolution var width 0 var height 0 class VideoMode var res
  • 将宽图的同一等级上的节点分布到不同的线上

    我有一个图表 组织图 digraph G nodesep 0 3 ranksep 0 2 margin 0 1 node shape rectangle edge arrowsize 0 8 1 gt 2 1 gt 3 1 gt 4 1 g
  • 检测到“时间戳”类型的对象与预期实例不匹配

    我想知道为什么 Timestamp 对象没有按我的预期工作 它在测试环境中工作 我使用Mocha 但在部署时抛出错误 index ts import Timestamp QuerySnapshot from google cloud fir
  • 为什么我们可以使用“this”作为实例方法参数?

    什么是接收器参数在爪哇 Java 8 语言规范谈论this JLS 给出a hint http docs oracle com javase specs jls se8 html jls 8 html jls 8 4 1 220 无论哪种方
  • 垃圾收集和毕加索的问题

    我正在尝试在 Google 地图标记的 InfoWindow 中设置 ImageView 并复制了代码这个答案 https stackoverflow com a 22043781非常准确 除了我的 InfoWindowAdapter 不是
  • 如何获取OSM节点或路径的城市和国家?

    我正在解析 OSM 数据的国家 地区摘录 我想要的是获取该点或方式所属的城市和国家的名称 这可能吗 我怎样才能获取这些信息 要检索此信息 您需要地理编码器 除非该节点具有相关的地址标签 https wiki openstreetmap or
  • R:如何对pairs()图中的对角线面板进行着色?

    以下代码将面板背景着色pairs情节在R 如何为对角线面板 打印变量名称的地方 着色 正如您所看到的 我尝试了它 但变量名称未正确对齐 无论出于何种原因 count lt 0 mypanel lt function x y count lt
  • 无法查询类型“y”上的字段“x”

    我需要 Graphql 查询方面的帮助 我正在尝试将投资组合网站部署到 Netlify 但在部署过程中出现此错误 我的代码可以在 localhost 上运行 但不能在 Netlify 上运行 我需要从 Contentful 中提取数据并用它
  • 获取标签 ID 以使用 GMAIL API 获取消息列表

    我正在使用 Google 几天前推出的新 GMAIL API v1 我想获取一些带有一些标签的电子邮件过滤列表 如果我想这样做 我需要得到label ID每个 label name 的但我只能得到所有标签的列表 任何想法 Diego 仅对于
  • Azure Blob 和队列线程安全

    我需要一些帮助来理解 azure CloudBlobClient CloudQueueClient 和 CloudBlob 类中的线程安全性 我正在开发一个辅助角色 其中包括多个独立的作业处理器 其中每个作业处理器从特定队列读取数据并写入