计划的 Azure Web 作业是按实例还是按站点?

Are scheduled Azure Webjobs per instance or per site?

我正在考虑使用 Azure WebJobs 每天早上向客户发送电子邮件。但是,我想确保只向每位客户发送一封电子邮件。我不清楚预定的 Azure WebJob 是否会 运行 每个实例一个或每个 webapp 一个或每个部署槽一个。如果我发布一个网络作业并将其安排在每天早上 8 点 运行,并且站点配置了两个部署槽,并且在 2 个实例上 运行s,将向客户发送多少封电子邮件早上 8 点?

计划的 Azure WebJob 将 运行 每个计划一次,无论网站有多少个实例。

关于槽,当您创建计划的 WebJob 时,您实际上创建了一个触发的 WebJob(在 Azure 网站端)和一个调度程序作业(在 Azure Scheduler 端)。 因此,您将为生产槽创建一次,接下来您将在暂存槽上部署与 "on demand" WebJob 相同的 WebJob 二进制文件。

无论何时交换 Azure 调度程序仍将指向您的生产槽,因此它始终会命中当前部署到生产槽的 WebJob。