一个计时器触发器类中具有多个Azure函数

时间:2019-05-28 21:09:00

标签: azure azure-functions

我们必须编写多个触发器。我希望根据触发器类型创建单独的函数。因此,如果我需要5个计时器触发器,这些计时器触发器将在不同的时间运行,那么我将创建一个计时器触发器函数类,并将函数命名为[TimerTrigger1][TimerTrigger2][TimerTrigger3]等向前。添加代码后,我不确定是否可以这样做。

有人可以建议我如何添加多个触发器吗?我不能在一个课程下拥有两个Run函数。

public static class TimerTrigger
{
    [FunctionName("InsertTimerTrigger1")]
    public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
    {
         // Do task 1
        log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    }

    [FunctionName("InsertTimerTrigger2")]
    public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, ILogger log)
    {
        //Do Task 2
        log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    }
}

2 个答案:

答案 0 :(得分:2)

您可以为方法选择任何名称。 (将其命名为“运行”不是必需的。)

public static class TimerTrigger
{
    [FunctionName("InsertTimerTrigger1")]
    public static void InsertTimerTrigger1([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
    {
         // Do task 1
        log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    }

    [FunctionName("InsertTimerTrigger2")]
    public static void InsertTimerTrigger2([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, ILogger log)
    {
        //Do Task 2
        log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    }
}

答案 1 :(得分:0)

您可以在“单个类”中创建多个功能。您可以更改Run方法名称。

public static class Function1
{
    [FunctionName("Function1")]
    public static void Method1([TimerTrigger("0 */2 * * * *")]TimerInfo myTimer, TraceWriter log)
    {
        log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
    }

    [FunctionName("Function2")]
    public static void Method2([TimerTrigger("0 */3 * * * *")]TimerInfo myTimer, TraceWriter log)
    {
        log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
    }
}

但是我建议,创建多个功能可以为您提供帮助(您的情况下为5)。

  1. 如果您使用通用的业务逻辑,则可以放入一个通用类并注入所有功能。
  2. 您可以从FunctionApp实例中独立启用/禁用/删除功能。

enter image description here

  1. 您可以独立监视每个功能(从“功能监视器”部分)

enter image description here