gpt4 book ai didi

azure - 如何获取 azure 中特定 webjobs 的进程 ID?

转载 作者:行者123 更新时间:2023-12-03 03:06:27 27 4
gpt4 key购买 nike

我想终止 Web 作业,那么如何获取 Web 作业进程 ID?

是否可以使用编程获取 Web 作业进程 ID 并终止 Web 作业?

最佳答案

I want to kill web job so how can I get web job process id?is it possible to get web job process id & kill a web jobs using programming?

根据您的描述,我建议您可以使用 kudu webjob stop rest api 停止 webjob。

在您终止进程后,Web 作业将自动重新启动。

您可以使用 Kudu Rest api 来实现您的要求。

您可以首先在 Azure Web 应用程序中设置部署凭据,如下所示:

注意:请记住用户名和密码,我们将使用它们来生成访问 token

enter image description here

然后您可以编写代码来发送停止网络作业的请求,如下所示:

网址:https://yourwebsitename.scm.azurewebsites.net/api/continuouswebjobs/TestWebJob/stop

更多详细信息,您可以引用以下代码:

   string url = @"https://yourwebsitename.scm.azurewebsites.net/api/continuouswebjobs/TestWebJob/stop";

var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

httpWebRequest.Method = "POST";
httpWebRequest.ContentLength = 0;

string logininforation = "usename:password";

byte[] byt = System.Text.Encoding.UTF8.GetBytes(logininforation);
string encode = Convert.ToBase64String(byt);


httpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + encode);


// Get the response
HttpWebResponse httpResponse = null;

httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

Console.WriteLine(httpResponse.StatusCode);

如果您仍然想杀死该进程,我建议您可以先向以下网址发送请求以获取该进程。

网址:https://yourwebsitename.scm.azurewebsites.net/api/processes

如果您获得该进程,则可以向 kudu 发送删除请求以终止该 Webjob 的进程。

更多详细信息,您可以引用以下C#代码:

    string url = @"https://yourwebsitename.scm.azurewebsites.net/api/processes";

var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

httpWebRequest.Method = "GET";
httpWebRequest.ContentLength = 0;

string logininforation = "username:password";

byte[] byt = System.Text.Encoding.UTF8.GetBytes(logininforation);
string encode = Convert.ToBase64String(byt);


httpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + encode);


using (HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse())
{
using (System.IO.StreamReader r = new System.IO.StreamReader(response.GetResponseStream()))
{
string jsonResponse = r.ReadToEnd();

dynamic result = JsonConvert.DeserializeObject(jsonResponse);

dynamic resultList = result.Children();

foreach (var item in resultList)
{
Console.WriteLine(item.name);
if (item.name == "yourwebjobname")
{
Console.WriteLine(item.href);
//begin to delete the webjob process
string url2 = item.href;
var httpWebRequest2 = (HttpWebRequest)WebRequest.Create(url2);
httpWebRequest2.Headers.Add(HttpRequestHeader.Authorization, "Basic " + encode);
httpWebRequest2.Method = "DELETE";
httpWebRequest2.ContentLength = 0;
HttpWebResponse httpResponse2 = null;
httpResponse2 = (HttpWebResponse)httpWebRequest2.GetResponse();

}
}
}
}

关于azure - 如何获取 azure 中特定 webjobs 的进程 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44110819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com