获取队列触发器 azure webjob 的消息元数据
Get Message metadeta for queue trigger azure webjob
我们有以下 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 我们想将消息移动到数据库,我们可以通过 queue-poison 实现它,但只是不想为此添加另一个 webjob/function。
当然可以,只需将 message
的类型从 string
更改为 CloudQueueMessage
:
public static void ProcessQueueMessage(
[QueueTrigger(AppConstants.AzureBlobQueue)] CloudQueueMessage message,
TextWriter log, ExecutionContext context)
我们有以下 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 我们想将消息移动到数据库,我们可以通过 queue-poison 实现它,但只是不想为此添加另一个 webjob/function。
当然可以,只需将 message
的类型从 string
更改为 CloudQueueMessage
:
public static void ProcessQueueMessage(
[QueueTrigger(AppConstants.AzureBlobQueue)] CloudQueueMessage message,
TextWriter log, ExecutionContext context)