2012-04-11 4 views
2

Ziemlich neu zu Azure und das gesamte Worker-Rollen-Konzept, früher, wenn ich etwas Back-End-Arbeit wollte, würde ich nur eine Windows-Formulare-Anwendung erstellen und als geplante Aufgabe haben.Sollte ich meine gesamte Back-End-Verarbeitung einer Worker-Rolle zuweisen?

Mit meiner neuen Website habe ich eine Windows-Formularanwendung erstellt, die ich jede Stunde ausgeführt habe, die XML-Feeds einliest und die gesamte Verarbeitung durchführt und die Informationen in SQL Azure einfügt.

Es gibt auch Bild-Links, die ich im azure Blob-Speicher speichern und möglicherweise die Größe ändern möchte, was ich aus meiner vb.net-Anwendung heraus hatte.

Meine Frage ist, sollte ich die gesamte Verarbeitung von meiner Windows-Formularanwendung in die Rolle des Arbeiters verschieben oder sollte ich eine Worker-Rolle einrichten, um nur das Bild in Blobspeicher zu verarbeiten?

Wie viel Rechenzeit verwendet eine Worker-Rolle? Ich habe Beispiele gesehen, wo es einen Sleep-Timer gibt, aber ist es möglich, jede Stunde zu jeder Stunde zu laufen?

Antwort

2

Sie können einfach einen Timer einrichten, der jede Stunde zur vollen Stunde auslöst. Wo Sie Ihren Code ausführen, hängt dies von Ihrer Anwendungsarchitektur ab. Wenn Sie eine Webrolle haben, können Sie diese in Ihrer Webrolle anstelle einer dedizierten Worker-Rolle platzieren, es sei denn, Sie benötigen die zusätzliche Verarbeitungsleistung einer separaten Instanz und sind bereit, dafür zu bezahlen. Außerdem erhöht die Anzahl der Instanzen jeder Rolle (Web/Worker) die Lösung.

Eine detaillierte Darstellung Ihrer Architektur bietet einen besseren Referenzrahmen für die von Ihnen gewünschte Antwort.

0

Worker-Rolle ist für alle Arten von Hintergrundaktivitäten konzipiert. Sie können also die gesamte Verarbeitungslogik von der Windows-Anwendung in die Arbeitsumgebung verschieben. Es ist einfach eine Klassenbibliothek mit einer Einstiegspunktklasse.

Sie können in der Worker-Rolle keine Arbeit automatisch planen. Du musst eine Logik für dich selbst korrigieren. Arbeiterrolle führt ein Stück Code in einer Endlosschleife aus. Sie werden für die Nr. Berechnet. der Stunden, die Sie in der Arbeiterrolle (compute) verwendet haben, spielt es keine Rolle, ob Ihre Arbeiterrolle im Leerlauf ist oder etwas verarbeitet. Wenn Sie Blob und Queue verwenden, werden Ihnen außerdem Gebühren für den Zugriff und die Speicherung von Daten in Rechnung gestellt.

+0

Weil ich 2 Web-Instanzen habe, bedeutet dies, dass wenn ich eine Arbeiter-Rolle mache, es 2 Arbeiter-Rollen-Instanzen geben wird? Gibt es eine Möglichkeit, die Anzahl der Worker-Rollen-Instanzen festzulegen? – Imsopov

+0

Es ist nicht erforderlich, Arbeitsrolleninstanzen mit Ihren Web-Intents zu verknüpfen. Sie können Nein angeben. von Instanzen in Service-Konfigurationsdatei, diese Datei wird dann von Windows Azure benötigt, um Spin Nr. erforderlich. von Web- oder Worker-Rollen. –