禁用触发的 Azure WebJob
Posted
技术标签:
【中文标题】禁用触发的 Azure WebJob【英文标题】:Disable a Triggered Azure WebJob 【发布时间】:2018-03-03 09:41:54 【问题描述】:我有一个由 webhook 触发的 Azure WebJob。由于...原因,我无法控制发送 webhook 的系统。每天发送一个 webhook。它是唯一由 WebApp 托管的 WebJob。
在测试期间,我想禁用此 WebJob,因此我停止了 WebApp。令我惊讶的是,即使 WebApp 被禁用,WebJob 也会运行。
所以我的问题有两个:
-
在 WebApp 被禁用时触发 WebJob 的能力是故意的,还是我遇到了某种错误?
如果这是故意的,是否有办法禁用通过 Azure 门户触发的此作业?
如果我的问题的唯一解决方案是让 WebJob 检查配置值以确定是否运行,那就可以了。我只是认为必须有一种方法可以通过我缺少的门户禁用 WebJob。
【问题讨论】:
您究竟是如何执行 webhook 的 - 您使用的是 Azure Functions 吗?还是这完全是经典的 WebJobs SDK? 【参考方案1】:您还可以在应用设置中设置 WEBJOBS_STOPPED 设置,尤其是在发布到开发槽时。
https://github.com/projectkudu/kudu/wiki/WebJobs
【讨论】:
【参考方案2】:停止应用程序不会停止运行 WebJobs 的 scm 站点。有一种更高级的方法可以在 API 级别停止它,方法是在站点对象上设置 state=Stopped
和 scmSiteAlsoStopped=true
。这可以使用资源浏览器完成。
查看https://github.com/projectkudu/kudu/wiki/Full-stopping-a-Web-App了解更多详细步骤。
【讨论】:
以上是关于禁用触发的 Azure WebJob的主要内容,如果未能解决你的问题,请参考以下文章
Azure 触发的 Webjob - 检测 webjob 何时停止