2012-04-26 58 views

回答

29

取決於上下文。

工作人員通常是一個在您的應用程序請求週期外運行的進程。像resquedelayed_job等Ruby庫通常用於管理工作隊列。另一方面,如果我們談論的是Web服務器,「worker」一詞有時可以與線程或進程交互使用(即:nginx或apache「workers」)。

+0

在web服務器中,是'工作人員'獨立的線程還是進程? – Kamilski81 2012-04-27 04:43:50

+0

@ Kamilski81在Web服務器中使用這裏概述的解決方案,這些將是單獨的過程。以delayed_job爲例,您可以運行許多不同的工作進程,這些工作進程都可以從數據庫中彈出下一個最高優先級任務。由於這種架構,許多人使用上帝或BluePill等工具來運行額外的監控程序。有關更多信息,請參閱https://www.ruby-toolbox.com/categories/server_monitoring – salernost 2012-04-30 12:35:46

3

運行您的rails應用程序的服務器使用工作人員來完成應用程序所需的所有工作。它發送電子郵件,運行請求,執行計算等。您需要的工作人員數量取決於您的Web應用程序需要執行多少流量和計算。

7

通常在'Rails世界'中,工作者指的是一個優先級隊列類型系統,它有單獨的進程,彈出在應用程序週期之外執行的任務。這些系統中最受歡迎的是DelayedJobs。這使用數據庫遷移來添加表來保存要由工作進程執行的任務。然後您可以配置任何數量的工作進程來檢查DelayedJobs隊列表並執行序列化的任務。通過DelayedJobs,您不僅可以設置不同任務的優先級,還可以執行任務的時間範圍,例如。從現在起1小時發送一封特定電子郵件。

希望這有助於 /Salernost

相關問題