2017-02-22 6 views
0

У меня есть функция Azure Function в плане потребления, которая содержит 6 отдельных таймеров с триггером.Функция Azure на таймере Триггер не срабатывает

  • 3 из них стрелять каждый час на 5 мимо час (0 5 * * * *)
  • 1 из них стреляет каждую ночь в полночь (0 0 0 * * *)
  • 1 из них пожары на понедельник в 8 утра (0 0 8 * * пн)
  • И последний один должен стрелять в 1am каждое утро (0 0 1 * * *), но не

Они все копии одного и того же приложения, но выполняют разные действия в зависимости от аргументов командной строки. Они запускаются сценарием Run.ps1 Powershell, который содержит соответствующие аргументы командной строки.

Вчера в 09:40 Я попытался запустить функцию проблемы вручную, и она запустилась, поэтому я изменил расписание на (0 0 11 * * *), и он запустился в 11 утра, как и ожидалось. Поэтому я изменил график назад (0 0 1 * * *), но при 1am утром он не бежал :(

enter image description here

Я собираюсь попробовать изменить график так, что он работает на 2am в случае, если что-то вызывает проблему в 1 утра, но кроме того, что еще я могу попробовать?

+0

У меня такая же проблема с триггерами приложенияпотребления и функций приложения потребления и таймера + EventHub. Если приложение неактивно, эти триггеры не запускаются. Когда я запускаю HttpRequest в приложении, он приходит «живой», а остальные триггеры работают некоторое время. MS Support предложила полностью удалить и повторно развернуть приложение Function. Это помогло некоторое время. В скором времени я перейду в среду обслуживания приложений и, следовательно, в специальный план, и проблема не возникнет. Другая идея, которую я имел, - запустить пустой Web-тест/Http-запрос часто с помощью AppInsights. Но это все обходные пути - первопричина не решена. –

+0

Если бы вы оба разделили ваши имена приложений приложений публично или [тайно] (https://github.com/projectkudu/kudu/wiki/Reporting-your-site-name-without-posting-it-publicly) , Я могу заглянуть в журналы и посмотреть, смогу ли я выяснить, что происходит. – brettsam

+0

tht-test-function – littlecharva

ответ

1

Я думаю, что вы можете столкнуться с проблемой того, как мы рассчитываем, если ваш таймер просрочен. Я подал этот вопрос здесь: https://github.com/Azure/azure-webjobs-sdk-extensions/issues/194.

В журналах, которые я просматривал, я увидел, что ваше приложение функции перезапустилось как раз перед 1 утра из-за изменения файла function.json. Когда он вернулся, прошло 1 час (что должно было привести к его запуску), но поскольку он никогда не запускался раньше, мы неправильно вычисляли «следующее» время.

Я ищу исправление для этого - вы можете следовать вместе со ссылкой выше.

Если вы или @KaiWalter видите больше экземпляров пропущенных вызовов функций, сообщите мне, чтобы я мог подтвердить, что это то, что происходит.

+0

Спасибо, бреттам. – littlecharva

+0

У меня есть другой пример функции, которая не работает: та же учетная запись, функция app с m2 в названии и функция, о которой идет речь, называется ComparisonTest. Он должен был бежать в полночь, но журналы показывают, что это не так. Можете ли вы подтвердить, связано ли это с той же проблемой? – littlecharva

+0

Да, похоже, это та же проблема. Спасибо за информацию, это помогает подтвердить это. – brettsam

0

Если ваше приложение-приложение указывает не часовой пояс по умолчанию (с использованием APPSETTING_WEBSITE_TIME_ZONE), скорее всего, вы столкнулись с известной проблемой: https://github.com/Azure/azure-webjobs-sdk-script/issues/995.

Исправление к этой проблеме начало развертываться, и развертывание должно завершаться до конца недели.

+0

Я не использую это, но спасибо за обновление. – littlecharva

+0

Хорошо, но в этом случае имейте в виду, что ваше расписание основано на времени UTC. Может быть, поэтому он не работает, когда вы ожидаете? –

+0

Хороший момент, но в полночь один побежал отлично, а так как я изменил его на 2 утра, похоже, все работает нормально. – littlecharva

Смежные вопросы