代码之家  ›  专栏  ›  技术社区  ›  Derek

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

  •  1
  • Derek  · 技术社区  · 8 年前

    我有一个连续的Web作业,需要在TimerTrigger上的两个位置运行两个Web应用程序。当我将Web作业从VisualStudio部署到这两个位置时,一切都很好,两个Web作业同时运行。

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

    我没有对Singletons做任何事情,实际上我尝试过通过使用“设置”来关闭它。作业'文件 {is_singleton: false} 。Octopus对这个包做了什么,让Azure认为这个Web作业是一个单独的作业吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   David Ebbo    8 年前

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

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