Azure functions Azure计时器触发器函数根本没有执行脚本日志
我正在用测试模板测试计时器触发器函数,无法执行脚本和任何日志,因为“JavaScript计时器触发器函数已运行!”。它以前对我有效,但第二天它根本不执行脚本,函数本身似乎正在运行,但我无法测试脚本,也不了解问题所在。 myfunction.js文件Azure functions Azure计时器触发器函数根本没有执行脚本日志,azure-functions,Azure Functions,我正在用测试模板测试计时器触发器函数,无法执行脚本和任何日志,因为“JavaScript计时器触发器函数已运行!”。它以前对我有效,但第二天它根本不执行脚本,函数本身似乎正在运行,但我无法测试脚本,也不了解问题所在。 myfunction.js文件 { "bindings": [ { "name": "myTimer", "type": "timerTrigger", "direction": "in", "schedule": "0
{
"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
}
}
这是我在候机楼里的东西
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);
};
我可以重现您的问题,然后在github中发现相同的问题: 这是由Singleton Lock引起的,更多详细信息请参考以下内容:,并在本地开发中注明: ListenerLockPeriod的默认值为60秒,这意味着如果 主机被意外终止(例如,当 本地运行)无法重新获取已持有的blob租约 直到租约自然到期。这意味着如果你杀了一个 正在运行的实例然后尝试立即重新启动JobHost, 您将看到函数不会立即开始运行,因为 它正在等待获取Singleton锁 假设这就是问题的原因,因此在github问题中有一个,在host.json中设置
listenerLockPeriod
以下是一个示例:
"singleton": {
"listenerLockPeriod": "00:00:15"
}
在我这方面没有问题。你能重新创建一个函数并再次测试吗。看起来没问题。您能显示函数的.js文件部分(javascript)吗?请注意,function和local.settings是.json而不是js。将示例代码放在github中,很容易检查。@BowmanZhu u的意思是index.js它是默认的脚本代码,但很抱歉,在运行该函数时,我仍然看不到日志:(((如果您将值更改得更小,如5,如果堆栈日志中的
listenLockPeriod
也更改了,如果您的日志也更改了,则会显示下一个5的运行时间,该怎么办?抱歉,我没有完全理解,但您的意思是将listenLockPeriod从15更改为5?@geogechenyes,也许您可以尝试一下,不要立即启动函数。我在c之后出现此错误。)hange“启动操作“54405405-d786-41e5-b4da-e225a6baa111”期间发生主机错误。System.Private.CoreLib:调用目标引发了异常。Microsoft.Azure.WebJobs.host:指定的参数超出了有效值的范围。参数名称:value。”