什么是ruby / rails的工人?

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

取决于具体情况。

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

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

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

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