2012-04-26 14 views

Odpowiedz

29

zależy od kontekstu.

Pracownik to zazwyczaj proces uruchamiany poza cyklem żądania aplikacji. Biblioteki Ruby, takie jak resque i delayed_job, są zazwyczaj używane do zarządzania kolejek roboczych.

Z drugiej strony, jeśli mówimy o serwerach internetowych, słowo "pracownik" jest czasem używane zamiennie z wątkami lub procesami (np .: nginx lub apache "pracownicy").

+0

w serwerach sieciowych, są "osobnymi wątkami lub procesami pracowników"? – Kamilski81

+0

@ Kamilski81 w serwerach internetowych i przy użyciu opisanych tutaj rozwiązań, byłyby to oddzielne procesy. Na przykład z delayed_job możesz uruchomić wiele różnych procesów roboczych, które mogą wyskoczyć z zadania o najwyższym priorytecie z bazy danych. Dzięki tej architekturze wielu ludzi uruchamia dodatkowy proces monitorowania, używając czegoś takiego jak Bóg lub BluePill. Zobacz tutaj, aby uzyskać więcej informacji: https://www.ruby-toolbox.com/categories/server_monitoring – salernost

3

Serwer, na którym działa aplikacja szyny, używa robotów do wykonywania wszystkich czynności, których potrzebuje aplikacja. Wysyła e-maile, uruchamia żądania, wykonuje obliczenia itp. Liczba potrzebnych pracowników zależy od natężenia ruchu i obliczeń, które musi wykonać aplikacja internetowa.

7

Często w "Railsowym świecie" pracownik odwołuje się do systemu typu priorytetowej kolejki, który ma oddzielne procesy wyskakujące z zadań do wykonania poza cyklem aplikacji. Jednym z najpopularniejszych z tych systemów jest DelayedJobs. To wykorzystuje migrację bazy danych, aby dodać tabelę do przechowywania zadań, które mają być wykonywane przez proces roboczy. Następnie można skonfigurować dowolną liczbę procesów roboczych, które sprawdzą tabelę kolejki DelayedJobs i wykonają zadanie szeregowe. Dzięki DelayedJobs masz nie tylko możliwość ustawienia priorytetu różnych zadań, ale także czas wykonania zadania, np. wyślij konkretny e-mail za godzinę.

Nadzieja to pomaga, /Salernost