使用一个或多个标准 FIFO 队列实现延迟队列 [关闭]

2024-04-26

延迟队列是一种队列,其中每条消息都有与其关联的延迟时间,并且只有在延迟到期时才能取出消息。队列的头部是过去延迟最远到期的消息。如果没有延迟过期,则没有头,出队将返回 null。

实际上,我正在使用 Azure 编写一个云应用程序,在 Azure 中只有 FIFO 队列可用,而不是优先级/延迟队列。所以我来这里寻找是否有人可以给我一些指示,让我可以从正确的方向开始。我用 google 搜索了很多,但只找到了 Java 中的延迟队列实现,并且没有关于一般延迟队列的标准教程/研究论文。

EDIT:

我有什么代码?
实际上,我必须首先设计这个东西并将其呈现给我的经理,一旦我们完成设计,那么只有我可以开始编码。

有关该场景的更多详细信息
它是一个基于主/从模型的分布式应用程序。主服务器生成消息并将它们放入 Azure 服务总线队列中,并且有多个从服务器(在多台计算机上运行)从队列中读取并处理它们。如果万一主设备发生故障,那么其中一个从设备将充当主设备并开始生成消息。我不想在主服务器中存储任何状态信息,因为如果主服务器发生故障,所有状态信息也会随之消失。


Windows Azure 队列消息有一个延迟(以秒为单位),该延迟是您在将消息插入队列时指定的。在达到超时延迟之前,消息将不可见。看这篇 MSDN 文章 http://msdn.microsoft.com/en-us/library/dd179346.aspx查看 API 详细信息。

不可见超时也在各种语言 SDK 实现中实现。由于您使用的是 C#,因此以下是AddMessage()调用看起来像。注意第三个参数AddMessage()指定不可见超时:

        var acct = CloudStorageAccount.DevelopmentStorageAccount;
        var queueClient = acct.CreateCloudQueueClient();
        var queue = queueClient.GetQueueReference("myqueue");
        queue.CreateIfNotExist();

        var msg = new CloudQueueMessage("test message");
        queue.AddMessage(msg, TimeSpan.FromHours(2), TimeSpan.FromMinutes(30));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用一个或多个标准 FIFO 队列实现延迟队列 [关闭] 的相关文章

  • 当用户与 DateTimePicker 控件交互时会引发什么事件?

    我是 C 新手 在我的程序中使用 DateTimePicker Value Changed 事件 但我发现当用户单击箭头时发生 ValueChanged 事件 或者如果也以编程方式更改值 我只想识别 DateTimePicker 的用户交互
  • 将文件扩展名与应用程序关联

    我编写了一个编辑特定文件类型的程序 我想为用户提供在启动时将我的应用程序设置为该文件类型的默认编辑器的选项 因为我不需要安装程序 我尝试编写一个可重用的方法 通过向 HKEY CLASSES ROOT 添加一个键来为我关联一个文件 最好在任
  • 从文本文件中读取所有内容 - C

    我正在尝试从文本文件中读取所有内容 这是我写的代码 include
  • ASP.NET Core 测试 - 没有方法 'public static IHostBuilder CreateHostBuilder(string[] args)

    我正在尝试在测试中设置我的应用程序并在中使用Startup s Configure method context Database EnsureCreated 并期待着Sqlite文件出现在Test sbin文件夹 这是我的代码 using
  • “上下文模式”的这种实现看起来不错吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有多个处理单元可能存在于一个数组中 每个处理单元都有自己的参数 我想使用以下方式传达每个处理单元的参数上下文模式在它被建议作为另一个问题的解答 ht
  • 返回 ObjectResult 会导致 406 Not Acceptable

    在学习 Scott Allen 的 Pluralsight 课程 Asp net Core 1 0 基础知识 时 在 MVC 框架中的控制器 模块和 操作结果 部分中 我在 Index 操作方法上遇到了 406 Not Acceptable
  • g++.exe 和 x86_64-w64-mingw32-g++.exe 有什么区别?

    同样的问题也适用于 gcc ar 等 在 Code Blocks 中将工具链可执行文件从 Something exe 更改为 x86 64 w64 mingw32 something exe 时 代码仍然可以完美编译 此外 32 位和 64
  • FileStream - “不支持给定路径的格式”

    我正在尝试使用EPPlus http epplus codeplex com 在我们的 LAN 上保存电子表格 我正在使用一个FileStream对象执行此操作 但是每当我尝试实例化该对象时 我都会收到错误 The given path s
  • 恢复多个监视器的窗口大小/位置

    许多帖子都涉及恢复 WinForm 位置和大小 例子 www stackoverflow com questions 92540 save and restore form position and size http www stacko
  • 从网站保存嵌入的 pdf

    我正在编写一个小型 C 应用程序来管理供应商提供的 化学品 安全数据表 目前 我手动搜索该化学品并保存 pdf 并在我的程序中添加指向 pdf 的链接 问题是我还有很多化学品需要处理 所以最好将过程自动化 例如 化学品的部件号如下 2710
  • 自定义文件属性

    我需要遵循 在我的申请中 我有文件 需要随时签入和签出的文件 当我从应用程序中签出文档时 我需要将自定义属性添加到文件中 以便稍后在签入文档时可以识别它 我尝试使用以下代码使用 DSOFile 中的 OleDocumentPropertie
  • 使用 PrimarySearcher.FindAll() 时出现内存泄漏

    我也有一个使用插件和应用程序域长时间运行的服务 并且由于使用目录服务而出现内存泄漏 请注意 我正在使用 system directoryservices accountmanagement 但据我了解 它使用相同的底层 ADSI API 因
  • 在 QtCreator 中查看数组内容

    调试时是否可以在 Qt Creator 中查看数组的内容 似乎检测到我的数组是一个数组而不是一个指针 此外 我可以点击一个箭头 就像展开一样 但之后什么也没有显示 当我试穿的时候std vector Qt Creator 设法按预期显示内容
  • 在 C、C++ 中实现腐蚀、膨胀

    我对二值图像的膨胀是如何完成的有理论上的了解 AFAIK 如果我的 SE 结构元素 是这样的 0 1 1 1 在哪里 代表中心 我的图像 二进制是这样的 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0
  • 创建 .ICS 文件,添加到 Outlook

    我正在创建一个简单的应用程序 允许用户下载 ICS 文件 并将其导入到他们选择的日历应用程序 站点中 我对创建过程感到满意 但对在 Outlook 中打开它们有疑问 将使用C ASP NET进行开发 当我打开一个日历时 它会添加一个新日历
  • C# - 使用 Linq 获取 Attribute 的属性

    我有一个属性 它本身就有属性 我想访问这些属性之一 布尔值 并检查它是否正确 我能够检查属性是否已设置 但这就是全部 至少对于 linq 来说是这样 属性 public class ImportParameter System Attrib
  • 为什么这些双精度数的返回值为-1.#IND?

    I have double score cvMatchContourTrees CT1 CT2 CV CONTOUR TREES MATCH I1 0 0 cout lt
  • 在 Qt C++ 中使用多个键

    我正在构建 坦克 游戏 我使用关键事件在地图上运行我的坦克 实际上我当时只能使用一把钥匙 但我需要有能力去完成任务 同时向上和离开 这是我的单键事件代码 switch event gt key case Qt Key Up if ui gt
  • SoapHttpClientProtocol:以流而不是字符串的形式获取响应?

    我正在使用一种网络服务 它可以一次性输出大量数据 响应字符串可能约为 8MB 虽然在台式电脑上这不是问题 但嵌入式设备在处理 8MB 字符串对象时会发疯 我想知道是否有办法以流的形式获取响应 目前我正在使用如下方法 我尝试使用 POST 请
  • 如何检查一个盒子是否适合另一个盒子(允许任何旋转)

    假设我有两个盒子 每个盒子都是一个长方体 http en wikipedia org wiki Rectangular cuboid aka长方体 我需要编写一个函数来决定盒子是否具有尺寸 一 二 三 可以装入具有尺寸的盒子中 甲 乙 丙

随机推荐

  • 是否可以使用 Office 365 API 编辑存储在云中的 Office 文档?

    是否可以将我们的 asp net vb net 网站与 Office 365 集成 以便订阅 Office 365 的客户可以使用在线 Office 365 编辑器编辑存储在我们服务器上的文档 我们的网站已经使用 Google Docs 编
  • Hibernate 4.3 + Tomcat 7 无法查找 JNDI 名称

    我从 4 2 7 升级到 Hibrernate 4 3 x 时遇到问题 我得到了这个异常 Caused by javax naming NameNotFoundException Name java comp env jdbc data i
  • 为什么我们可以将 sockaddr 转换为 sockaddr_in

    我明白为什么强制转换很有用sockaddr to sockaddr in 但我不明白这怎么可能 据我所知 它们的大小相同sockaddr in添加了sin zero使其大小相同 我想知道编译器如何知道从哪里获取信息sockaddr in如果
  • 运行 IPython 笔记本时如何(间歇性地)跳过某些单元格?

    重新打开笔记本时 我通常必须重新运行笔记本 的大部分部分 以便访问先前定义的变量并继续工作 然而 有时我想跳过一些单元格 这些单元格对后续单元格没有影响 例如 它们可能包含已完成的分析分支 并且可能需要很长时间才能运行 这些单元格可能分散在
  • 为什么要使用 Node.js 安装服务器(Nginx、Apache...)? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 Node js Express Web 框架下需要 apache https stackoverflow com questions 9287747 why do we need apache
  • 更新数据库后 NHibernate 查询缓存不起作用

    我在 FluentNHibernate 中启用了二级缓存 Fluently Configure Database MsSqlConfiguration MsSql2005 ConnectionString connectionString
  • DynamoDB Stream 的计划读取

    我正在寻找一种按计划时间间隔从 DynamoDB 批量读取更新的方法 例如 每隔 10 分钟 我希望能够读取自上次读取以来 DynamoDB 表发生的所有更新 我了解 DynamoDB Streams 可以设置为触发 Lambda 函数 L
  • haml 文件中的 yaml 前面内容

    我正在尝试使用Haml Jekyll 扩展 https github com codegram haml jekyll extension只是我不明白如何包含 yaml 前面的内容 我有以下内容 user hello html title
  • React Router - 如何确定是否按下了后退按钮?

    我有这些场景 设置页面 gt 结果页面 gt 详细信息页面 用户选择设置 单击下一步 获取结果 然后单击查看更多详细信息 详情页 gt 结果页 用户从详细信息页面返回结果页面 这会导致完全重新渲染 导致我毫无意义地再次访问服务器 我将结果存
  • 动态更改 Dropzone url

    我正在尝试更改 dropzone 中的 URL 但我发现的信息似乎对我不起作用 我有一个表单 我正在使用 JS 放置一个拖放区 我想根据下拉列表中选择的选项来更改 dropzone URL 这是我正在使用的代码 Dropzone
  • 将 Hibernate linq 查询转换为 HQL

    我知道 IQueryable 无法序列化 这意味着查询无法序列化 发送到 Web 服务 反序列化 查询然后发回 我想知道是否可以将 hibernate linq 查询转换为 hql 以通过网络发送 我还缺少另一条路线吗 我想我已经看到 AD
  • 如何设置 PrimeFaces 主题?

    我正在尝试让我的 PrimeFaces v2 1 应用程序使用不同的主题 我下载了 vader 1 0 0 jar 并将其放在我的 WEB INF lib 文件夹中 我将以下内容添加到我的 web xml 中
  • 用 Python 绘制生成器的数据

    Python IPython Jupyter笔记本 中是否有任何接受的绘图选项发电机 AFAIK matplotlib不支持这一点 我发现的唯一选择是plot ly http plot ly使用他们的 Streaming API 但我不想使
  • 如何在 OpenCV 中更好地计算射线线段交点?并得到它的交点和距原点的距离?

    我有 4 条线段 A B C 和 D 每条线都表示为两个点 例如 线A由点A1和点A2表示 我想要的是 点 X 即线 A 射线与线 B 相交的点 X与A1 原点 之间的距离 测试相交时 线 A 射线不应 与线段 D 相交 与线段C相交 我该
  • 如何在 Swift 中将 CMutablePointer 设置为 false?

    基本上我在 Swift 中使用 AssetsLibrary 框架 如何将停止指针的值修改为 NO False 0 我什至不知道它应该除外什么值 self library enumerateGroupsWithTypes ALAssetsGr
  • 如何在 css 中对重新定位的 div 进行 z 索引

    Context 我正在尝试制作明显集中的菜单项 当鼠标悬停时改变颜色并扩大尺寸 虽然设置另一种颜色很容易 但尝试将其横向移动是一项比我想象的更复杂的任务 运动本身按其应有的方式工作 但项目的 z 索引变得混乱 Issue 背景颜色已按其应有
  • Cookie - 跨多个域设置

    我公司的设置如下 子域 1 域 1 子域名2 域名1 com 子域名3 域名1 com 子域名4 域名1 com 子域名5 域名1 com 子域名6 域名1 com 子域 1 域 2 子域 2 域 2 subdomain3 domain2
  • 是否可以为自定义组件(而不是 FormControl)创建一个验证器

    我正在尝试这样做 Directive selector myVal myCustomInputToComponent providers provide NG VALIDATORS useExisting forwardRef gt MyV
  • Windows 7 跳转列表(Windows 窗体、C#)

    有谁知道如何在 C 中自定义与我自己的应用程序相关的 Windows 跳转列表功能 我知道可以做到 但我在 MSDN 上找不到任何与 C Windows7 相关的内容 到目前为止 我能找到的与 W7 和 C 相关的唯一信息只是我已经阅读过的
  • 使用一个或多个标准 FIFO 队列实现延迟队列 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 延迟队列是一种队列 其中每条消息都有