2012-04-26 24 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

相关问题