当前位置: 首页 > 知识库问答 >
问题:

Azure servicebus队列消息处理

方英耀
2023-03-14

我有两个消费者(不同的应用程序)连接到Azure队列。我可以ReceiveAndDeletePeekLock消息,在消费过程中,我可以complete()放弃()消息。裁判:http://msdn.microsoft.com/en-us/library/azure/hh851750.aspx.

我确定我想使用PeekLock,然后放弃()消息,因为我希望它们在两个应用程序中被接收。我想我应该将队列上的消息生存期设置为10秒,作为删除机制。

然而,由于消息似乎在10秒钟后被删除,因此在这10秒钟内,它们会在两个应用程序中反复发布。我应该创建一些自定义的重复检测,还是通常使用错误的方法

共有1个答案

屠嘉勋
2023-03-14

根据我的经验,当您使用PeeKLock时,您几乎总是需要使用Complete方法来完成。放弃方法会造成口是心非,因为它从未标记为“完成”。

您是否考虑过使用服务总线主题/订阅模式,或者过滤器?如果我正确理解您的场景,它可能正是您所需要的。您可以向队列发送2条消息,其中包含不同的主题或筛选器,用于指定该应用程序。

http://azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-topics-subscriptions/

请让我知道这是否有帮助,或者如果这不符合您的情况。

最亲切的问候。。。

 类似资料:
  • 为什么已经拥有了共享内存时需要消息队列呢? 这将是多种原因,让我们将其分解为多个点来简化 - 据了解,一旦消息被一个进程接收到,它将不再可用于任何其他进程。 而在共享内存中,数据可供多个进程访问。 如果想使用小信息格式进行通信。 当多个进程同时进行通信时,共享内存数据需要同步保护。 使用共享内存的写入和读取频率很高,那么实现功能将会非常复杂。 在这种情况下不值得使用。 如果所有的进程不需要访问共享

  • 一、消息模型 点对点 发布/订阅 二、使用场景 异步处理 流量削锋 应用解耦 三、可靠性 发送端的可靠性 接收端的可靠性 参考资料 一、消息模型 点对点 消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。 发布/订阅 消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。 发布与订阅模式和观察者模式有以下不同: 观察者模式中,观察者和主题都知道对方的存在;

  • 一个线程会从消息队列中收取消息,另一个线程会定时给消息队列发送普通消息和紧急消息 一个线程会从消息队列中收取消息,另一个线程会定时给消息队列发送普通消息和紧急消息 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: *

  • 消息队列接口 结构体 struct   rt_messagequeue   消息队列控制块 更多...   类型定义 typedef struct rt_messagequeue *  rt_mq_t   消息队列类型指针定义   函数 rt_err_t  rt_mq_init (rt_mq_t mq, const char *name, void *msgpool, rt_size_t msg_

  • rabbitmq 使用 定义handler实体 public class UserEvent : EventHandler { public string Name { get; set; } public string Job { get; set; } } 队列定义 [QueueConsumer(nameof(HelloEventHandler), QueueCon

  • 主要内容:什么是Stream?,常用命令汇总,基本命令应用,创建消息ID,创建消费组,消费消息Redis Stream 是 Redis 5.0 版本引入的一种新数据类型,同时它也是 Redis 中最为复杂的数据结构,本节主要对 Stream 做相关介绍。 什么是Stream? Stream 实际上是一个具有消息发布/订阅功能的组件,也就常说的消息队列。其实这种类似于 broker/consumer(生产者/消费者)的数据结构很常见,比如 RabbitMQ 消息中间件、Celery 消息中间