【发布时间】:2022-11-24 02:38:10
【问题描述】:
我在服务总线队列中批量接收消息并且它有效:
[FunctionName("TelemetryListenerCalculateAlgoPostNewState")]
public static async Task TelemetryListenerCalculateAlgoPostNewState(
[ServiceBusTrigger(busTelemetryQueueName,Connection = "ServiceBusConnection")]
string [] receivedTelemetryMessages,
ILogger log)
{
但我想收到每条消息或批次的更多信息,至少是 enqueuedTimeUtc 或 messageId 来计算延迟和关注订购的方法like so:如果我将这些参数添加到上述函数中,我得到错误:
[FunctionName("ServiceBusQueueTriggerCSharp")]
public static void Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")]
string myQueueItem,
Int32 deliveryCount,
DateTime enqueuedTimeUtc,
string messageId,
ILogger log)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message:
{myQueueItem}");
log.LogInformation($"EnqueuedTimeUtc={enqueuedTimeUtc}");
log.LogInformation($"DeliveryCount={deliveryCount}");
log.LogInformation($"MessageId={messageId}");
}
[2022-11-23T18:11:02.038Z] Microsoft.Azure.WebJobs.Host:索引方法“TelemetryListenerCalculateAlgoPostNewState”时出错。 Microsoft.Azure.WebJobs.Host:无法将参数“enqueuedTimeUtc”绑定到类型 DateTime。确保绑定支持参数类型。如果您正在使用绑定扩展(例如 Azure 存储、ServiceBus、计时器等),请确保您已在启动代码中调用扩展的注册方法(例如 builder.AddAzureStorage()、builder.AddServiceBus( )、builder.AddTimers() 等)。
使用 ServiceBusTrigger 接收批处理时如何实现此目的?我没有使用主题,因为我只使用这个消费者。
谢谢
【问题讨论】:
标签: c# azureservicebus azure-servicebus-queues