Octopus 在两个位置同时部署了连续的 WebJob,而不是 运行

Octopus deployed continuous WebJob not running simultaneously in two locations

我有一个连续的 Web 作业需要 运行 在 TimerTrigger 的两个位置上的两个 Web 应用程序。当我将 webjob 从 Visual Studio 部署到两个位置时,一切正常,两个 webjobs 运行 同时部署。

现在我准备开始使用 Octopus-Deploy 进行部署。我已经成功地创建了一个包含两个步骤的计划,该计划执行此操作并将程序集放在 Azure 中 Web 应用程序 (app_data\jobs\continuous\{jobname}) 下的正确位置。问题是一次只有一个 webjob 执行它的作业,即使两个 webjobs 的状态都是 运行。如果我停止并启动正在执行的那个,另一个 webjob 开始执行它的工作,而我打开的那个 off/on 的状态为 运行ning,但永远不会执行它的工作。另外,如果我只从 visual studio 重新部署其中一个,它们都会再次在两个位置执行它们的工作。

我没有对 Singletons 做任何事情,实际上我已经尝试通过使用带有 {is_singleton: false} 的 'settings.job' 文件来关闭它。 Octopus 是否对使 Azure 认为 webjob 是单例的程序包做了什么?

我猜这个问题是由于您部署的两个应用程序使用相同的存储帐户和主机 ID 引起的。当您这样做时,WebJobs SDK 将其视为已扩展到两个实例的单个 Web 应用程序,并确保计时器仅在其中一个实例上 运行。

最简单的解决方案是为每个应用程序使用不同的存储帐户。