Ich komme aus der Java-Welt und höre diesen Begriff 'Arbeiter' in der Welt der Rubine/Schienen. Was ist es? ein Thread?Was ist ein Arbeiter in Ruby/Rails?
Antwort
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").
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.
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
- 1. Uncaught Reference: Arbeiter nicht definiert ist beim Versuch, einen Arbeiter in einem anderen Arbeiter in Chrome
- 2. Was macht ein Web-Arbeiter, wenn der Besitzer nicht im Fokus ist?
- 3. WPF Hintergrund Arbeiter Objekt nicht erkennen Arbeiter
- 4. Capture Heroku SIGTERM in Sellerie Arbeiter zum Herunterfahren Arbeiter anmutig
- 5. Heroku Arbeiter in dev
- 6. Was ist ein PHP-Framework und was ist ein guter?
- 7. Google AMP: Was ist ein Layout? Was ist ein Behälter?
- 8. Was ist ein Inferenztyp?
- 9. Was ist ein CGVector?
- 10. Was ist ein Steckplatz?
- 11. Was ist ein Kontextwechsel?
- 12. Was ist ein Domänenfehler
- 13. Was ist ein SSTable?
- 14. Was ist ein Tabellenpräfix?
- 15. Was ist ein Bitmuster?
- 16. Was ist ein "Pinsel"?
- 17. Was ist ein "Doppelstapelfehler"?
- 18. Was ist ein Datenbankindex?
- 19. Was ist ein Rakefile?
- 20. Was ist ein Ereignishandle?
- 21. Was ist ein Pastenskript?
- 22. Was ist ein Stammverzeichnis?
- 23. Was ist ein Protokoll?
- 24. Was ist ein Objekt?
- 25. Was ist ein UIViewController
- 26. Was ist ein Gruppenleiter
- 27. Was ist ein tGrid?
- 28. Was ist ein LPTHREAD_START_ROUTINE?
- 29. Was ist ein ImageObserver?
- 30. Was ist ein Pushlock?
in Web-Servern, sind "Arbeiter" separate Threads oder Prozesse? – Kamilski81
@ 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