如何从.Net 6+程序重新启动Azure WebJob

wtzytmuj  于 2023-10-22  发布在  .NET
关注(0)|答案(1)|浏览(147)

我能找到的所有指导,都指向使用:
Microsoft.Azure.Management.ResourceManager.Fluent
但是package已经被弃用,并建议这样做(来自nuget页面):

在安装了这些软件包和Azure.ResourceManager.AppService之后,我可以接近这个:

var webApp = client.GetResourceGroupResource(ResourceIdentifier.Parse("resId"));
var webSite = webApp.GetWebSite("siteName").Value;
var webjob = webSite.GetWebSiteWebJob("jobname");

(resId、siteName和jobname与问题无关)
在webSite对象上有:

webSite.Restart(); // also an Async version

但是在webjob上,我看不到任何可以启动重启的东西。以下所有选项都缺少重新启动选项:

webjob.NotHere();
webjob.Value.NotHere();
webjob.value.Data.NotHere();

我觉得我错过了什么。如何使用新的nuget包重新启动webjob?任何指导都是非常感谢的。

xkftehaa

xkftehaa1#

webSite.Restart()方法用于重新启动整个Azure Web App。如果要重新启动特定WebJob,可以使用Azure REST API发送HTTP POST请求。

using System.Net.Http;

var client = new HttpClient();
var url = $"https://{webAppName}.scm.azurewebsites.net/api/triggeredwebjobs/{webJobName}/run";
var response = await client.PostAsync(url, null);

即使你有一个选择在门户网站。进入kudo并选择进程资源管理器,直接杀死特定示例的webjob。

  • 由于Web作业作为Kudu的子进程运行,因此杀死Kudu进程可以有效地停止和重新启动Web作业。

此方法对于重新启动设置为连续运行的Web作业非常有效。如果您已触发或计划Web作业,则可能需要在重新启动后再次手动触发或计划这些作业。检查reference

相关问题