На самом деле, вы можете написать методы обработки сервера в функции. Когда запущена веб-работа, она обходит все методы вашей функции.
Вы можете обратиться к следующему коду для динамического запуска нескольких очередей.
В программе:
static void Main()
{
var host = new JobHost(new JobHostConfiguration
{
NameResolver = new QueueNameResolver(),
});
host.RunAndBlock();
}
В функции:
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("%queuename1%")] string message, TextWriter log)
{
log.WriteLine(message);
Console.WriteLine("success");
}
public static void ProcessQueueMessage1([QueueTrigger("%queuename2%")] string message, TextWriter log)
{
log.WriteLine(message);
Console.WriteLine("success2");
}
}
В QueueNameResolver:
public class QueueNameResolver : INameResolver
{
public string Resolve(string name)
{
return ConfigurationManager.AppSettings[name].ToString();
}
}
В App.config:
<appSettings>
<add key="queuename1" value="queue"/>
<add key="queuename2" value="myqueue"/>
</appSettings>
Независимо от того, добавляете ли вы сообщение в очередь или в очередь, оно всегда будет прослушивать их.