У меня есть WebJob на Azure, который обрабатывает сообщения из нескольких очередей одновременно:
public async static Task ProcessQueueMessage1([QueueTrigger("queue1")] string message)
{
switch (message.Substring(message.Length - 3, 3))
{
case "tze":
await Parser.Process1(message);
break;
default:
break;
}
}
public async static Task ProcessQueueMessage2([QueueTrigger("queue2")] string message)
{
switch (message.Substring(message.Length - 3, 3))
{
case "tzr":
await Parser.Process2(message);
break;
default:
break;
}
}
А в MAIN
static void Main()
{
JobHostConfiguration config = new JobHostConfiguration();
config.Queues.BatchSize = 3;
config.Queues.MaxDequeueCount = 1;
var host = new JobHost(config);
host.RunAndBlock();
}
здесь: message.Substring(message.Length - 3, 3)
просто проверяетрасширение файла.
Мой вопрос: как мне сделать так, чтобы размер пакета queue1 отличался от queue2, могу ли я создать второй jobhost с другой конфигурацией и иметь host.RunAndBlock()
и host2.RunAndBlock()
??Как мне указать, какую очередь должен выполнять jobhost?
Я также пробовал Groupqueuetriggers, но, к сожалению, они принимают строку, и в моей ситуации я не могу фактически передать списки в очередь.(