我有一个关于计时器触发器的 Azure 函数。我见过它的多个实例同时运行。有没有办法可以防止多次调用?即使我按下 Azure 门户上的运行按钮以获取功能,我也不希望它在上一个调用完成之前运行。例如,当我按下门户上的运行按钮时,下面的内容似乎启动了两次,认为已经有一个实例正在运行。
2019-02-19T04:25:16 Welcome, you are now connected to log-streaming service.
2019-02-19T04:25:23.353 [Info] Function started (Id=aacaf548-79f1-49ec-8614-e638302b8368)
2019-02-19T04:25:26.639 [Info] Function started (Id=f4abe10c-f2bf-447b-bef7-efe3499420c6)
最佳答案
实现这一目标的一种方法是使代码的函数同步(阻塞)并将规模限制为仅一个实例。这样,每次执行都将是一个阻塞调用。
要限制规模,您可以修改应用程序设置 WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT 。
虽然 [Info] 日志中的请求 ID 不同,但这并不一定意味着请求发送到了两个不同的实例。我相信,如果您的代码是异步的,同一应用程序实例可以并行处理多个请求。
关于azure-functions - Azure Function - 防止多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771850/