在后台运行rake任务与使用像Delayed Job,Resque或Sidekiq这样的gem之间的区别是什么?

jam*_*mes 10 rake background-process delayed-job resque sidekiq

我需要实现一些后台处理来1)发送电子邮件,2)做一些API调用.而且,无论我使用什么系统,我还将与某种cron调度程序(只要有可能)结合使用.我很好奇,我认识到有一系列非常酷的背景处理宝石(延迟工作,Sidekiq,Resque),但我也明白你可以根据Ryan Bate的视频只用rake任务进行后台处理:http:// railcasts.com/episodes/127-rake-in-background.

使用gem和rake任务进行后台处理的利弊是什么?后者关于我的一件事是,每次调用rake任务时你都必须启动一个新的环境,这在内存上非常昂贵.

请注意,我不需要比较宝石.这个系列在这里做得很好:http: //www.sitepoint.com/series/comparing-ruby-background-processing-libraries/

Mik*_*ham 5

并行.您可以让N名工作人员并行发送电子邮件.使用rake你有一个单独的线程,发送许多电子邮件将需要一段时间.