2

我有这个 Azure 应用程序,我在其中托管一个 Webjob。

每当我启动应用程序时,只需 1 个 Webjob 即可正常运行,并且一切正常。但随着时间的推移,不知从何而来,出现了另一个 webjob,它是所需 webjob 的精确副本。

所以问题是当这个功能没有被编码时,会产生另一个 webjob(不需要的)。

请参见图 1(必填/开始时):

请参见图 1(必填/按原样启动)

请参见图 2(不需要/一段时间后发生):

请参见图 2(不需要/一段时间后发生)

这是一个触发的网络作业,其 cron 计划为* * * * * *.

4

1 回答 1

0

所以问题是当这个功能没有被编码时,会产生另一个 webjob(不需要的)。

我假设您的情况是由于执行时间造成的。请检查文档中的以下声明:

在 Azure 环境中,计划的 webjob 将仅在一个实例(或工作人员)上运行。这是通过在 webjob 运行时使用文件锁定机制来实现的。如果 webjob 恰好运行了很短的时间,则可能存在竞争条件(例如时钟 sku),导致另一个实例稍后按相同的计划启动(因为它检测到没有锁定)。解决方法是确保 webjob 运行一段时间(假设调度间隔更长,至少 5 秒)。

此外,还有一个类似的案例供您参考:如果计划的 Web 作业已经在运行,Azure 是否会启动另一个实例?

于 2018-09-18T08:18:21.210 回答