2010-05-31 40 views
0

我很满意迄今为止,只有我有这个问题:rails backgroundjob并行运行作业?

当一个进程需要1或2小时完成时,队列中的所有其他作业似乎都等待完成一个作业。更糟糕的是,当定期上传到服务器时,

我的问题:Bj是并行还是一个接一个地运行作业?

谢谢 达米尔

回答

0

BackgroundJob将只允许一个工人每web服务器实例上运行。这是设计来保持简单。下面是来自北京的README报价:

如果一个忽略平台的具体细节Bj的设计相当简单: 主要Rails应用程序提交作业表,存储在数据库中。提交的行为 触发究竟发生以下两种情况之一:

1)启动

2)现有的背景亚军将信号

一个新的长期运行的背景亚军

背景亚军拒绝为给定的 hostname/rails_env组合运行其自身的两个副本。例如,您可能只有一个背景 在开发模式下的本地主机上运行处理作业。

在正常情况下,后台运行程序由Bj本身管理 - 您无需启动,监视或停止它 - 它只是起作用。但是,有些人会更喜欢管理自己的后台进程,请参阅下面的'外部 跑步者'部分了解更多信息。

亚军只是处理的优先级最高的高龄在时尚, 捕获标准输出,标准错误,EXIT_STATUS等每个作业和存储信息回 到数据库中,同时记录它的行动。当没有工作要跑 赛跑者睡觉42秒;然而,这种睡眠是可以间断的,例如当跑步者被发信号通知新作业已经被提交时,在正常情况下, 在作业提交和 作业之间将存在空的队列。

您可以了解更多GitHub的页面上:Here