2012-04-26 4 views

Antwort

29

Abhängig vom Kontext ab.

Ein Worker ist normalerweise ein Prozess, der außerhalb des Anwendungsanforderungszyklus ausgeführt wird. Ruby-Bibliotheken wie resque und delayed_job werden normalerweise zum Verwalten von Arbeitswarteschlangen verwendet.

Auf der anderen Seite, wenn wir über Webserver sprechen, wird das Wort "worker" manchmal synonym mit Threads oder Prozessen verwendet (zB: nginx oder apache "workers").

+0

in Web-Servern, sind "Arbeiter" separate Threads oder Prozesse? – Kamilski81

+0

@ Kamilski81 in Webservern und mit den hier beschriebenen Lösungen, dies wäre separate Prozesse. Mit delayed_job können Sie beispielsweise viele verschiedene Worker-Prozesse ausführen, die alle die Aufgabe mit der nächsthöheren Priorität aus der Datenbank entfernen können. Aufgrund dieser Architektur führen viele Leute einen zusätzlichen Überwachungsprozess mit etwas wie Gott oder BluePill durch. Sehen Sie hier für mehr: https://www.ruby-toolbox.com/categories/server_monitoring – salernost

3

Ein Server, auf dem Ihre Rails-App ausgeführt wird, verwendet Mitarbeiter, um alle Anforderungen einer Anwendung zu erfüllen. Es sendet E-Mails, führt Anfragen aus, führt Berechnungen aus. Die Anzahl der benötigten Mitarbeiter hängt davon ab, wie viel Traffic und Berechnungen Ihre Web-App ausführen muss.

7

In der 'Rails-Welt' bezieht sich ein Worker häufig auf ein Prioritätswarteschlangensystem, bei dem separate Prozesse aus Tasks herauskommen, die außerhalb des Anwendungszyklus ausgeführt werden. Eines der beliebtesten dieser Systeme ist DelayedJobs. Dies verwendet eine Datenbankmigration, um eine Tabelle hinzuzufügen, die die Aufgaben enthält, die von einem Arbeitsprozess ausgeführt werden sollen. Sie können dann eine beliebige Anzahl von Worker-Prozessen konfigurieren, die die DelayedJobs-Queultabelle überprüfen und die serialisierte Aufgabe ausführen. Mit DelayedJobs haben Sie nicht nur die Möglichkeit, die Priorität verschiedener Aufgaben festzulegen, sondern auch einen Zeitrahmen für die Ausführung der Aufgabe, z. senden Sie eine bestimmte E-Mail in einer Stunde.

hoffe, das hilft, /Salernost