Ich habe eine einfache Azure Worker-Rolle ausgeführt, die jeden Tag um 12 Uhr eine Aufgabe ausführt. Unten ist der Code, der dies bewirkt.So planen Sie eine Aufgabe in der Windows Azur-Worker-Rolle
public override void Run()
{
try
{
while (true)
{
int time = Convert.ToInt32(DateTime.Now.TimeOfDay);
if (time == 12)
{
DoSomethingElse();
}
}
}
catch (Exception ex)
{
Log.Add(ex, true);
}
}
Hier DoSomethingElse()
ist eine Methode, eine E-Mail an jedem Tag 12.00 zu senden, und auch feuert einmal und nur einmal pro Tag.
Wie kann ich einen Scheduler implementieren, der ausgelöst wird, wenn die Uhrzeit 12 Uhr mittags ist, und DoSomethingElse()
ausführen.
Meine Frage ist: Ist dies (oben genannten Code) die beste Methode oder verwenden Sie ein Drittanbieter-Tool.
möglich Duplikat [Azure - wie kann ich einen Job ausführen, die eine Funktion in der Webservice jede Stunde ruft? ] (http://stackoverflow.com/questions/8548159/azure-how-do-run-a-job-that-calls-a-funktion-in-the-webservice-every-hour) –
Auf einer Seite - Beachten Sie, dass der obige Code zu einer engen Schleife führt, bei der die CPU ständig auf 100% gesetzt wird und Azure möglicherweise Ihre Worker-Rolle neu startet. Sie müssen mindestens eine Schlafanweisung dort hineinlegen. Oder verwenden Sie einen Timer, um zu warten. Aber in jedem Fall müssen Sie aufgrund der Multi-Instanz nach anderen Antworten für die Planung suchen, wie zum Beispiel über was Makogon spricht. – Frans