什么是ruby/rails的工人?

Kam*_*i81 24 ruby ruby-on-rails

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

Dam*_*son 31

取决于上下文.

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

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


sal*_*ost 7

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