Azure停止触发的Web作业

时间:2014-10-29 17:29:50

标签: azure azure-webjobs

在Azure中,一旦触发的Web作业开始了吗?我们需要做什么 - 阻止它?

背景:

我们的Web作业填充了一个服务总线队列,然后扩展了我们的工作者角色 - 我们的工作者角色正在使用第三方API - 并且正在收到错误。这导致我们的队列变得越来越大 - 并且创建了越来越多的工作者角色。这很贵。

4 个答案:

答案 0 :(得分:6)

正如Kobynet在上面解释的那样,我们正在使用kudu api,我们有以下powershell代码片段来停止进程

    $username = $website.PublishingUsername
    $password = $website.PublishingPassword
    $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
    $ps = Invoke-RestMethod -Uri "$apiBaseUrl/processes" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET    
    $id = $($ps | where {$_.name -eq $jobname} ).id
    Invoke-RestMethod -Uri "$apiBaseUrl/processes/$id" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method DELETE    
    write-host "killed process $id"

答案 1 :(得分:6)

我不确定何时添加,但我设法通过Kudu Process Explorer杀死了这些工作。

https://[websitename].scm.azurewebsites.net/ProcessExplorer/

等待进程出现,只需右键单击并终止进程。

答案 2 :(得分:3)

我们找到的最佳选择是使用KUDU api获取进程列表,然后终止所需的webjob进程。

答案 3 :(得分:0)

您可以通过单击托管webjob的应用服务上的“重新启动”按钮来执行此操作。它实际上清除了所有作业,您需要重新部署。

注意:此按钮可在新门户网站" portal.azure.com"只是但不是旧的。

希望这会有所帮助。