2017-02-16 3 views

Antwort

1

Wie ich weiß, konnte man einen ausgelösten WebJob nicht direkt stoppen, Sie müssen Process Explorer nutzen, um es über KUDU zu töten. Für die fortlaufenden WebJobs können Sie WebJobs API nutzen, um die WebJobs zu starten/stoppen. Sie müssen die spezifische Rest API mit Basic Auth unter Verwendung von Deployment credentials Ihrer Web App aufrufen. Hier ist der C# Code-Schnipsel, die WebJob zu stoppen:

string username = "{username}"; 
string password = "{password}"; 
string jobname = "{your-webjob-name}"; 
string authorization = Convert.ToBase64String(System.Text.UTF8Encoding.UTF8.GetBytes($"{username}:{password}")); 
using (var client = new HttpClient()) 
{ 
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authorization); 
    var res = await client.PostAsync($"https://{your-webapp-name}.scm.azurewebsites.net/api/continuouswebjobs/{jobname}/stop", null); 
    Console.WriteLine($"StatusCode:{res.StatusCode}"); 
} 

Hinweis: An dieser Stelle eine Datei disable.job genannt würde mit Ihrem WebJob hinzugefügt werden, wie folgt:

Für den Start der WebJob, rufen Sie einfach /api/continuouswebjobs/{job name}/start, dann die disable.job Datei würde entfernt werden und Ihr WebJob würde erneut ausgeführt werden.

1

Um die WebJob von einem externen Client stoppen Sie nur einen REST Anruf müssen: https://github.com/projectkudu/kudu/wiki/WebJobs-API#stop-a-continuous-job

POST https://{sitename}.scm.azurewebsites.net/api/continuouswebjobs/{job name}/stop 

, die eine Datei von disabled.job hinzufügen wird

To Starten Sie den WebJob erneut

POST https://{sitename}.scm.azurewebsites.net/api/continuouswebjobs/{job name}/start 

die dis entfernen wird Abgelaufene Job-Datei und Web-Job würden wieder laufen

+0

Guter Anruf (Wortspiel beabsichtigt) auf dem Web-Service, einen WebJob zu stoppen. Aber auf welche Datei beziehen Sie sich, um den WebJob erneut zu starten? –