什么是ruby / rails的工人?

时间:2012-04-26 17:01:53

标签: ruby-on-rails ruby

我来自Java世界,并在ruby / rails世界中继续听到这个术语“工人”。它是什么?一个帖子?

3 个答案:

答案 0 :(得分:30)

取决于具体情况。

工作人员通常是在应用程序请求周期之外运行的进程。像resquedelayed_job这样的Ruby库通常用于管理工作队列。

另一方面,如果我们谈论Web服务器,“worker”这个词有时可以与线程或进程互换使用(即:nginx或apache“worker”)。

答案 1 :(得分:7)

通常在“Rails世界”中,工作者指的是优先级队列类型系统,该系统具有单独的进程弹出任务以在应用程序周期之外执行。这些系统中最受欢迎的一个是DelayedJobs。这使用数据库迁移来添加表以保存工作进程要执行的任务。然后,您可以配置任意数量的工作进程,这些进程将检查DelayedJobs队列表并执行序列化任务。使用DelayedJobs,您不仅可以设置不同任务的优先级,还可以执行任务的时间范围,例如。从现在起1小时发送特定电子邮件。

答案 2 :(得分:3)

运行rails应用程序的服务器使用worker来完成应用程序所需的所有操作。它会发送电子邮件,运行请求,执行计算等。您需要的工作人员数量取决于您的Web应用程序需要执行的流量和计算量。