C# 如何在队列级别设置MaxDequeueCount

C# 如何在队列级别设置MaxDequeueCount,c#,azure,azure-webjobs,azure-webjobssdk,C#,Azure,Azure Webjobs,Azure Webjobssdk,我有一个Azure WebJob正在侦听多个队列 我可以在作业级别指定MaxDequeueCount config.UseTimers(); config.Queues.BatchSize = 32; config.Queues.MaxDequeueCount = 6; 在队列级别设置MaxDequeueCounts的最佳方法是什么?我知道我可以获取实际的出列计数并手动将其发送到中毒队列,但我想知道是否可以以更好的方式完成…如果要为不同的队列触发函数设置不同的配置,您可

我有一个Azure WebJob正在侦听多个队列

我可以在作业级别指定MaxDequeueCount

    config.UseTimers();
    config.Queues.BatchSize = 32;
    config.Queues.MaxDequeueCount = 6;

在队列级别设置MaxDequeueCounts的最佳方法是什么?我知道我可以获取实际的出列计数并手动将其发送到中毒队列,但我想知道是否可以以更好的方式完成…

如果要为不同的队列触发函数设置不同的配置,您可以实现自己的QueueProcessorFactory,并根据队列名称重置一些上下文配置

public class MyQueueProcessorFactory : IQueueProcessorFactory
{
    public  QueueProcessor Create(QueueProcessorFactoryContext context)
    {
        if (context == null)
        {
            throw new ArgumentNullException("context");
        }
        if (context.Queue.Name == "queue1")
        {
            context.MaxDequeueCount = 2;
        }
        else if (context.Queue.Name == "queue2")
        {
            context.MaxDequeueCount = 4;
        }
        return new QueueProcessor(context);
    }
}
要使用自定义QueueProcessorFactory,我们需要如下设置QueueProcessorFactory属性

JobHostConfiguration config = new JobHostConfiguration();
config.Queues.QueueProcessorFactory = new MyQueueProcessorFactory();
JobHost host = new JobHost(config);

如果要为不同的队列触发器函数设置不同的配置,可以实现自己的QueueProcessorFactory,并根据队列名称重置一些上下文配置

public class MyQueueProcessorFactory : IQueueProcessorFactory
{
    public  QueueProcessor Create(QueueProcessorFactoryContext context)
    {
        if (context == null)
        {
            throw new ArgumentNullException("context");
        }
        if (context.Queue.Name == "queue1")
        {
            context.MaxDequeueCount = 2;
        }
        else if (context.Queue.Name == "queue2")
        {
            context.MaxDequeueCount = 4;
        }
        return new QueueProcessor(context);
    }
}
要使用自定义QueueProcessorFactory,我们需要如下设置QueueProcessorFactory属性

JobHostConfiguration config = new JobHostConfiguration();
config.Queues.QueueProcessorFactory = new MyQueueProcessorFactory();
JobHost host = new JobHost(config);