如何创建服务总线触发器 webjob?
How to create service bus trigger webjob?
我检查了 doc 使用下面的代码来配置 webjob 以创建服务总线触发器功能。
static void Main()
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus(sbOptions =>
{
sbOptions.MessageHandlerOptions.AutoComplete = true;
sbOptions.MessageHandlerOptions.MaxConcurrentCalls = 16;
});
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
然而当我尝试实现它时,AddServiceBus
方法不可用,即使添加服务总线触发函数它总是报告找不到工作函数错误。
那么配置错误在哪里,感谢您的帮助。
根据我的经验,当您创建网络作业时,您没有使用正确的包。如果您检查 service bus binding doc,您会发现它需要 Microsoft.Azure.WebJobs.Extensions.ServiceBus
来提供服务总线绑定。
经过我的测试,你需要的包如下:
- Microsoft.Azure.WebJobs(>= 3.0.10)
- Microsoft.Azure.WebJobs.扩展
- Microsoft.Azure.WebJobs.Extensions.ServiceBus
- Microsoft.Azure.WebJobs.ServiceBus
使用 Microsoft.Azure.WebJobs.Extensions.ServiceBus
,您将能够使用 b.AddServiceBus()
方法,使用 Microsoft.Azure.WebJobs.ServiceBus
创建 ServiceBusTrigger
函数。
下面是我的测试代码,试试吧
public static void Main(string[] args)
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
Function.cs
public static void processservicebus(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection")]string myQueueItem,
ILogger log)
{
log.LogInformation(myQueueItem);
}
希望这对您有所帮助,如果您还有其他问题,请随时告诉我。
我检查了 doc 使用下面的代码来配置 webjob 以创建服务总线触发器功能。
static void Main()
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus(sbOptions =>
{
sbOptions.MessageHandlerOptions.AutoComplete = true;
sbOptions.MessageHandlerOptions.MaxConcurrentCalls = 16;
});
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
然而当我尝试实现它时,AddServiceBus
方法不可用,即使添加服务总线触发函数它总是报告找不到工作函数错误。
那么配置错误在哪里,感谢您的帮助。
根据我的经验,当您创建网络作业时,您没有使用正确的包。如果您检查 service bus binding doc,您会发现它需要 Microsoft.Azure.WebJobs.Extensions.ServiceBus
来提供服务总线绑定。
经过我的测试,你需要的包如下:
- Microsoft.Azure.WebJobs(>= 3.0.10)
- Microsoft.Azure.WebJobs.扩展
- Microsoft.Azure.WebJobs.Extensions.ServiceBus
- Microsoft.Azure.WebJobs.ServiceBus
使用 Microsoft.Azure.WebJobs.Extensions.ServiceBus
,您将能够使用 b.AddServiceBus()
方法,使用 Microsoft.Azure.WebJobs.ServiceBus
创建 ServiceBusTrigger
函数。
下面是我的测试代码,试试吧
public static void Main(string[] args)
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
Function.cs
public static void processservicebus(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection")]string myQueueItem,
ILogger log)
{
log.LogInformation(myQueueItem);
}
希望这对您有所帮助,如果您还有其他问题,请随时告诉我。