向外扩展时防止Azure应用服务上的重复计划作业

时间:2020-07-21 04:37:16

标签: node.js azure

我在Azure App Service上部署了Nuxt应用程序,并带有cron库来运行计划作业。但是我发现,如果有多个实例在运行,则计划作业将被复制。什么是正确的处理方式?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您有多个应用程序实例正在运行,那么您有多个cron实例正在运行(我假设您是指npm模块)。由于这两个应用都已编码,因此两者都将按相同的时间表激活。当然,如果超出此范围,则将运行三个,四个,五个作业。

有一些选项可让您在计时器上运行单例作业,例如将WebJob添加到App Service,创建Logic App和运行Azure Function。对于基本的JS脚本,我会recommend the function。您创建了一个JSON文件,该文件定义了要在其上运行的时间表(就像cron一样),它是JS,因此您可以将代码与所需的其他npm模块一起复制,并且可以像配置Web应用程序一样设置Configuration,如果您的工作需要连接到存储或数据库,则可以像使用现有Web应用程序一样在其中拥有连接字符串和其他信息。