Azure WebJobs - 添加没有属性的触发器?
Azure WebJobs - add trigger without attribute?
我正在构建一个连续作业来侦听 Azure 队列消息。使用 documentation 我有这样的东西:
static async Task Main()
{
var builder = new HostBuilder();
builder.UseEnvironment("development");
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
});
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
public static void Run(
[QueueTrigger("myqueue-items")] string myQueueItem,
ILogger log)
{
...
}
我不喜欢在运行时发现的魔法 QueueTrigger
属性。是否可以手动添加触发功能?我在想象这样的事情:
static async Task Main()
{
var builder = new HostBuilder();
builder.UseEnvironment("development");
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddQueueListener("myqueue-items", Run); // no magic attributes, compiler error if Run function is deleted
});
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
public static void Run(
string myQueueItem,
ILogger log)
{
...
}
是的,您可以使用手动触发器,不需要使用 QueueTrigger
属性,但是,如 document 中所述:要手动触发函数,使用 NoAutomaticTrigger
属性。
所以我觉得不管你是用自动触发器还是手动触发器,都必须加一个带属性的触发器,这是必须的!
我正在构建一个连续作业来侦听 Azure 队列消息。使用 documentation 我有这样的东西:
static async Task Main()
{
var builder = new HostBuilder();
builder.UseEnvironment("development");
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
});
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
public static void Run(
[QueueTrigger("myqueue-items")] string myQueueItem,
ILogger log)
{
...
}
我不喜欢在运行时发现的魔法 QueueTrigger
属性。是否可以手动添加触发功能?我在想象这样的事情:
static async Task Main()
{
var builder = new HostBuilder();
builder.UseEnvironment("development");
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddQueueListener("myqueue-items", Run); // no magic attributes, compiler error if Run function is deleted
});
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
public static void Run(
string myQueueItem,
ILogger log)
{
...
}
是的,您可以使用手动触发器,不需要使用 QueueTrigger
属性,但是,如 document 中所述:要手动触发函数,使用 NoAutomaticTrigger
属性。
所以我觉得不管你是用自动触发器还是手动触发器,都必须加一个带属性的触发器,这是必须的!