2010-10-18 37 views
1

我有一个Rails应用程序(它像一组打印机的某种负载均衡器)需要做一些后台处理。后台处理逻辑需要迭代所有可用(非繁忙)打印机,并且只要存在作业,就通过TCP套接字发送打印作业给每个打印作业。Rails并行后台处理

我知道有几个解决方案可以处理背景处理(Starling/Workling/ActiveMQ,BackgroundRB,Delayed Job等),但是最适合我需求的是什么(我需要一名工人/每个打印机当前可用的线程)?

+0

我只能说Delayed_Jobs,但我无法想象它不适合你。您可以指定尝试每个作业的次数,并且每个作业都会相应地运行。 – Trip 2010-10-18 12:45:43

回答

0

DelayedJob是一个不错的简单解决方案,因为它集成到您​​的环境中,并使用您的应用程序数据库。如果你不需要立即开始一个单独的环境,这是完美的。换句话说,你不需要额外的需求,而不需要你的Rails应用程序和数据库本身。

Resque也是一个很好的解决方案,但它需要你使用Redis数据库。

我没有尝试其他解决方案,因为它们太复杂或被Redis和DelayedJob取代。

+0

它是resque,不是救援 – shingara 2010-10-18 13:13:58

+0

@ shingara oops,你是对的。固定。 – 2010-10-18 13:43:44