获取队列触发器 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)