Azure如何停止Web作业?

时间:2015-08-25 22:03:08

标签: azure azure-webjobs

我们在设置为AlwaysOn的WebApp下运行连续的Web作业。

其中一个作业(可能编写得很糟糕)只要Azure存储队列中有项目,就会设置为循环运行,并且此队列的填充速度比作业可以消耗的速度快 - 有效地使循环无限。我想有时手动停止这项工作。

在Azure管理门户(manage.windowsazure.com)中,我已经停止"停止"该作业并重新启动了WebApp,但该作业似乎仍在运行。 Azure如何停止/终止某项工作?

显然它会创建一个“禁用”工具。在作业目录中的文件,表示不要运行,但当然,直到下次启动作业时才检查,因为它处于无限循环中,所以从未发生过。重新启动WebApp似乎也无济于事。

唯一似乎有帮助的事情是我们重新部署时,其中包括使用暂存环境进行交换(使用正在运行的作业关闭前一个环境)。

1 个答案:

答案 0 :(得分:0)

(部分)回答我关于Azure如何停止工作的问题可以在kudu source中找到:

    private bool IsDisabled
    {
        get { return FileSystemHelpers.FileExists(_disableFilePath) || Settings.IsWebJobsStopped(); }
    }

因此,如果disable.job存在,或者在应用程序设置中设置了WEBJOBS_STOPPED

我已经知道了这一点,在我们的特殊情况下它并没有帮助。事实证明,这些作业是在交换(并且还停止!!)暂存环境中运行的。即使在插槽停止后,作业也将继续在暂存环境中运行。对我来说,这是Azure的一个严重错误,但似乎没有人承认这是一个问题。