Azure функция запуска таймера вообще не выполняет журнал сценариев - PullRequest
0 голосов
/ 14 марта 2020

Я тестировал функцию триггера таймера с шаблоном тестирования и не могу выполнить скрипт и любые журналы как 'JavaScript функция триггера таймера запущена!'. Раньше он работал для меня, но затем на следующий день он просто не выполняет сценарий, который, кажется, работает сама функция, но я не могу проверить сценарий и не понимаю, в чем проблема. Моя функция. js file

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 * * * * *",
      "runOnStartup": true
    }
  ]
}

local.settings. json

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "githubKey": "sample123"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  }
}

Это то, что у меня есть в моем терминале

enter image description here

index. js

 module.exports = async function (context, myTimer) {
    var timeStamp = new Date().toISOString();

    if (myTimer.IsPastDue)
    {
        context.log('JavaScript is running late!');
    }
    context.log('JavaScript timer trigger function ran!', timeStamp);   
};

1 Ответ

0 голосов
/ 16 марта 2020

Я мог бы воспроизвести вашу проблему, затем я нашел ту же проблему в github: Улучшение поведения триггера по таймеру с блокировкой хоста .

enter image description here

Это вызвано синглтон-блокировкой, более подробно вы можете сослаться на это: Синглтон-блокировки , а в разделе «Локальное развитие» сказано:

Значение по умолчанию для ListenerLockPeriod равно 60 секунд, что означает, что если узел был убит изящно (например, окно консоли закрыто при локальном запуске), удерживаемая аренда блоба не может быть получена до тех пор, пока срок аренды не истечет естественным образом. Это означает, что если вы убьете работающий экземпляр, а затем попытаетесь немедленно перезапустить JobHost, вы увидите, что функция не запустится сразу, так как ожидает получения блокировки Singleton.

Предположим, это является причиной вашей проблемы, поэтому в проблеме github есть решение , установите listenerLockPeriod на хосте. json.

Вот пример:

"singleton": {
    "listenerLockPeriod": "00:00:15" 
  }

enter image description here

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