在Azure中,一旦触发的Web作业开始了吗?我们需要做什么 - 阻止它?
背景:
我们的Web作业填充了一个服务总线队列,然后扩展了我们的工作者角色 - 我们的工作者角色正在使用第三方API - 并且正在收到错误。这导致我们的队列变得越来越大 - 并且创建了越来越多的工作者角色。这很贵。
答案 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"只是但不是旧的。
希望这会有所帮助。