Frage

Ich möchte eine Azure-Anwendung erstellen, die zwei Arbeiter Rollen und NO-Web-Rollen hat. Wenn Sie zuerst die Arbeitsrollen starten möchte ich nur eine der Rollen die folgenden ein einziges Mal zu tun:

  • Laden und analysiert eine Master-Datei dann einreihen Aufgaben mehr „Kind“ auf der Grundlage des Inhalt der Master-Datei
  • Enqueue eine einzige Master-Datei herunterladen „Kind“ Aufgabe am nächsten Tag
  • laufen

würde Jeder der „Kind“ Aufgaben dann von beiden der Arbeiter durchgeführt werden, bis die Task-Warteschlange erschöpft war. Denken Sie an den ganzen Dinge als „Priming die Pumpe“

So etwas ist wirklich einfach, wenn ich das der ersten „Master“ Task manuell in einer Warteschlange durch den Aufruf eine Web-Rolle hinzufügen, aber scheint wirklich schwer zu sein, in einem Auto-Start-Modus zu tun.

Jede Hilfe in dieser Hinsicht wäre sehr zu schätzen!

Danke .....

War es hilfreich?

Lösung

Eine Möglichkeit: Statt eine Web-Rolle des Aufrufs nur die Warteschlange lädt direkt. (Es klingt wie dies die Art von Anwendung ist es, Sie automatisch einige Arbeit tun wollen, werden drehen und dann wieder heruntergefahren ... wenn du das bist zu automatisieren, sollte es trivial sein auch die Warteschlange Laden zu automatisieren.)

A (vielleicht) eine bessere Option: eine Art von Verriegelungsmechanismus verwenden, um sicherzustellen, nur ein Arbeiter Beispiel funktioniert die Initialisierung der Arbeit. Eine Möglichkeit, dies zu tun, ist zu versuchen, die Warteschlange zu erstellen (oder einen Klecks oder eine Entität in einer Tabelle). Wenn es bereits vorhanden ist, dann die andere Instanz ist der Umgang mit der Initialisierung. Wenn die create erfolgreich ist, dann ist es dieser Job der Instanz.

Beachten Sie, dass es immer besser, einen Mietvertrag als eine Sperre zu verwenden, um die Instanz im Fall, dass die Initialisierung nicht tut. Betrachten wir unter Verwendung eines Timeout (beispielsweise ein Zeitstempel im Tabellenspeicher zu speichern oder in den Metadaten des Blobs oder im Namen der Warteschlange ...).

Andere Tipps

Wir haben Ende-up mit der exakt gleichen Art von Problem, das ist, warum wir ein O / C-Mapper (Objekt Wolke). Im Grunde wollen Sie zwei Arten von Cloud-Service vorstellen:

  1. QueueService, die Nachrichten, wann immer verfügbar verbraucht.
  2. ScheduledService die Operationen auf einem Zeitplan.
  3. Trigger

Dann wird, wie andere vorgeschlagen, in der Wolke, bevorzugen Sie wirklich mit Mietvertrag s anstelle von Sperren, um Ihre Cloud App zu vermeiden up für immer durch eine vorübergehende Hardware fror zu beenden (oder Infrastruktur ) Thema.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top