Несколько функций Azure в одном классе триггера Timer - PullRequest
2 голосов
/ 29 мая 2019

Мы должны написать несколько триггеров.Я надеялся создать отдельные функции, основанные на типах триггеров.Поэтому, если мне нужно 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 ]

2 голосов
/ 29 мая 2019

Вы можете выбрать любое имя для методов. (Называть его «Выполнить» не обязательно.)

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 голос
/ 29 мая 2019

Вы можете создать несколько функций в одном классе. Вы можете изменить 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...