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

如何按时间间隔有选择地接收Azure服务总线消息?

索瀚海
2023-03-14
/// <summary>
/// Subscribes string types events.
/// </summary>
/// <param name="eventBus">The event bus.</param>
private static void SubscribeStringEvents(IEventBus eventBus)
{
    IEventBusEventHandler<string> stringEventHandler = new StringEventHandler();

    eventBus.Subscribe("topicId", stringEventHandler);
}

但是,在订阅String类型时,我还希望支持仅接收在注册StringEventHandler之后发布的消息的可能性-过去的消息应保留在相应的String订阅中。

为了支持这两种行为,最好的方法是什么?不幸的是,microsoft.azure.servicebus.NET API的文档记录很差。

共有1个答案

韶浩皛
2023-03-14

从Microsoft查找示例:TopicFilters

它使用旧的WindowsAzure.ServiceBus(4.1.3)库。它的使用与当前版本有点不同。但你可以把is作为参考。

SqlFilter sqlfilter = new SqlFilter("sys.EnqueuedTimeUtc >= @datetime");
sqlfilter.Parameters.Add("@datetime", DateTime.Parse("2019-12-04 16:56"));
Filter filter = sqlfilter.Preprocess();
var messages = subscriptionClient.PeekBatch(100);
Console.WriteLine("filtered messages: ");
var filteredMessages = from x in messages where filter.Match(x) select x;
var filteredMessagesList = filteredMessages.ToList();

附加教程:

 类似资料:
  • 参考https://github.com/Azure/azure-service-bus/tree/master/samples/dotnet/gettingstart/microsoft.Azure.servicebus/basicsendreceiveusingtopicsubscriptionclient,我了解Azure服务总线主题的一般工作方式,我的问题更多地是关于它实际上是如何工作的。

  • 我正在使用Azure服务总线主题机制。此外,我已经将消息发送到主题,并希望通过编程方式检查是否将消息发送到主题。 代码: 有没有办法获得响应或状态代码?

  • 这是我能找到的最接近的前一个问题:Azure Service Bus Subscription OnMessage未接收消息。 同样的事情也发生在我身上。当我改变主题的名称时,它会再次工作一段时间。则该服务总线主题再次损坏。只有65-71%的消息到达。无助于删除子内容,也无助于删除主题。题名似乎过了一段时间不知怎么就被污染了。这是真的真的很糟糕,因为我没有办法告诉什么时候主题是腐败的,除了系统不像

  • 我希望以批处理模式接收来自Azure ServiceBus主题的消息。 阅读https://docs.microsoft.com/en-us/Azure/Azure-functions/functions-best-practices时指出: 我有一个方法: 这个方法是有效的,但它一次只需要一个消息。 根据Microsoft文档,我可以将其更改为: 注意:主题和订阅已启用“启用批处理操作”设置。

  • 我正在使用azure service bus主题,我已经为它订阅启用了会话。 在my logic应用程序中,我使用来自主题的sql事务插入数据,我使用主题订阅(peek-lock)并在订阅服务器级别将并发设置为默认,如下所示 根据我的理解,我的逻辑应用程序(订阅者)应该读取所有的消息,并且必须在FIFO中处理 我的逻辑应用程序像

  • 我正在使用代码实现Azure服务总线主题,这些主题可以在以下位置找到:https://docs.microsoft.com/en-us/Azure/service-bus-messaging/service-bus-dotnet-how-to-use-topics-subscriptions 我尝试运行订阅者程序的两个实例,它包含以下方法: 但是,这不允许两个订户都接收消息,它接收的消息是两个订户