我们有以下 QueueTrigger 代码,并且我们希望在 ProcessQueueMessage 中拥有消息元数据(即:dequequecount、lastretrival)。有办法实现吗?
public static void ProcessQueueMessage([QueueTrigger(AppConstants.AzureBlobQueue)] string message, TextWriter log, ExecutionContext context)
{
try
{
//Do Something
log.WriteLine(message);
}
catch (Exception ex)
{
if(message.DequeueCount == 1)
{
//Logic 1 to notify
}
if(message.DequeueCount == 2)
{
//Logic 2 to notify
} if(message.DequeueCount == 3)
{
//Logic 3 to notify
} if(message.DequeueCount == 4)
{
//Logic 4 to notify
} if(message.DequeueCount == 5)
{
//Logic 5 to notify
}
}
}
我们对于出队计数 == 5 有不同的逻辑,我们想要将消息移动到数据库,我们可以通过队列毒药来实现它,但只是不想为此添加另一个网络作业/函数。
最佳答案
当然可以,只需将消息
类型从string
更改为CloudQueueMessage
即可:
public static void ProcessQueueMessage(
[QueueTrigger(AppConstants.AzureBlobQueue)] CloudQueueMessage message,
TextWriter log, ExecutionContext context)
关于azure - 获取队列触发器 azure webjob 的消息元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46425322/