2012-06-23 13 views
7

Ich entwickle den Backend-Server für ein rundenbasiertes Spiel mit App Harbor und bis jetzt scheint es perfekt für meine Bedürfnisse geeignet. Ich würde gerne einen Hintergrundprozess für die Verarbeitung von Turn-Daten usw. durchführen und ich frage mich, ob jemand klären könnte, was der Unterschied zwischen "Web Worker" und "Background Worker" ist? Ich habe ziemlich wenig Erfahrung mit Web-Entwicklung, aber soweit ich sagen kann "Web-Arbeiter" sind für die Interaktion mit AJAX-Seiten (die ich nicht brauche) und "Hintergrund-Arbeiter" können Sie eine Konsole-Anwendung im Hintergrund ausführen (was ich brauche!)Was ist der Unterschied zwischen "Web Worker" und "Background Worker" auf App Harbor

Danke!

Antwort

5

Web Worker ist mit der Anfrage von Browser verbunden und kann Daten an die Anfrage im Browser abrufen und senden.

Hintergrundarbeiter sind unabhängige Threads, die nicht mit einer Anfrage verbunden sind und keine Daten an den Browser senden können *.

[*] Nur durch einen Web-Mitarbeiter.

4

Im Allgemeinen ist "Web-Worker" die Webanwendung oder die ASP.NET-Site/der ASP.NET-Dienst, der Anfragen von Benutzern verarbeitet. 'Hintergrund-Worker' ist einfach eine geplante Aufgabe. Es wird im Hintergrund in bestimmten Intervallen ausgeführt und führt Code aus.

Der Unterschied ist, dass ein Web-Worker etwas Arbeit leistet, wenn eine neue Anfrage an die Anwendung kommt. Eine Anfrage bedeutet, dass jemand eine Seite lädt/einen Web-Service auf ASP.NET aufruft. Während der Hintergrund-Worker in einem bestimmten Intervall gestartet wird und kein Benutzer eine Seite laden muss, um ausgeführt zu werden. Es wird hauptsächlich für die Verarbeitung lang andauernder Aufgaben verwendet. Der übliche Arbeitsablauf ist - der Web-Arbeiter empfängt eine Anfrage von dem Benutzer und stellt einige Daten in die Warteschlange, die verarbeitet werden sollen. Beim nächsten Lauf erhält der Hintergrundarbeiter die Daten und verarbeitet sie und speichert die Daten irgendwo (normalerweise in der Datenbank). Dann überprüft der Web-Arbeiter bei der nächsten Anfrage des Benutzers die Datenbank und wenn das Ergebnis dort ist, zeigt es es dem Benutzer an.

Auf diese Weise muss der Benutzer nicht warten, bis die asp.net-Seite die Daten verarbeitet und sofort ein Ergebnis zurückgibt.