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

仅使用MessageReceiver第一次使用Azure函数HttpTrigger从主题获取消息

长孙波鸿
2023-03-14

使用MessageReceiver只在第一次使用Azure函数从主题获取消息之后,在下一次执行函数时,尽管我在服务总线主题中有消息仍然在变量MessageReceiver中获取null。

使用下面的代码从服务总线主题获取消息,原因是什么?

string serviceBusConnectionString = Environment.GetEnvironmentVariable("ConnectionString");
var messageReceiver = new MessageReceiver(serviceBusConnectionString, Environment.GetEnvironmentVariable("topicName/subscriptions/subscriptionName"), ReceiveMode.PeekLock, null, 500);

var messages = await messageReceiver.ReceiveAsync(500, TimeSpan.FromSeconds(1));

我不明白--每隔15分钟,当LA给FA打电话时,FA应该能读到新的可用消息,但它会变成空消息

有什么与锁定持续时间有关的吗?

共有1个答案

石正奇
2023-03-14
var messages = await messageReceiver.ReceiveAsync(500, TimeSpan.FromSeconds(1));

将等待直到接收到一个或多个消息,然后返回。以后传入的任何消息都不会被读取。如果您想这样做(我想怀疑在Azure函数中这是一个好主意),请将其放入一个循环中:

while(/* some condition */)
{
     messages = await messageReceiver.ReceiveAsync(500, TimeSpan.FromSeconds(1));
     // do something with the received messages
}
 类似资料:
  • 我一直在使用covid19api持有的数据实现Kafka生产者/消费者和流。 我试图从endpoint中提取每天的案例https://api.covid19api.com/all.然而,这个服务——以及这个API中的其他服务——拥有自疾病开始以来的所有数据(确诊、死亡和恢复病例),但积累了数据,而不是日常病例,这就是我最终要实现的。 使用transformValues和StoreBuilder(正

  • 我遵循这篇文档来实现上述场景。 那么,有没有人可以建议我如何一次使用多个订阅者从主题中读取消息。

  • 用例 我有一个物联网中心设备,它向物联网中心发送遥测数据。我想处理遥测数据,例如使用函数存储到数据库。 功能 我在VS2019中创建了以下函数并将其发布到Azure: 资料来源:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-grid#use-作为事件网格触发器的http触发器 事件订阅

  • 从示例中,我看到了下面的代码片段,它运行良好。但问题是:我并不总是需要处理输入流并将其生成到接收器。 如果我有一个应用程序,根据某些事件,我必须只发布到kafka主题,以便下游应用程序可以做出某些决定。这意味着,我实际上没有输入流,但我只知道当我的应用程序中发生某些事情时,我需要向kafka的特定主题发布消息。也就是说,我只需要一个接收器。 我查看了示例,但没有找到符合我要求的任何内容。有没有一种

  • 我想创建一个Azure函数,它接受传递给它的JSON主体,并将该文档插入到Azure COSMOSDB实例中。 并按如下方式实现该函数: 在门户中,我放入了一个简单的示例文档:

  • 问题内容: 我有一个简单的Java生产者,如下所示 我正在尝试读取以下数据 但是消费者没有阅读来自kafka的任何消息。如果我在下面添加以下内容 然后,消费者开始阅读该主题。但是,每当使用者重新启动时,它都会从我不希望的主题开头读取消息。如果我在启动Consumer时添加以下配置 然后它从主题读取消息,但是如果使用者在处理所有消息之前重新启动,则它不会读取未处理的消息。 有人可以让我知道出了什么问