从Sinatra运行Ruby脚本作为子进程/另一个线程的最佳方法是什么?

时间:2011-09-12 20:34:00

标签: ruby heroku sinatra

我有一个Sinatra应用程序,我计划在Heroku上托管。

该应用程序部分地从网络上的其他页面中删除很多信息,并将信息存储到数据库中。这些报废操作是一个缓​​慢的过程,因此我需要它们在与我的Sinatra应用程序分开的另一个线程/进程中运行。

我的计划只是为每个进程设置一个按钮,我可以点击该按钮,并在后台进行报废。

我不确定什么是最好的方法来做到这一点,复杂的是Heroku允许的。

1 个答案:

答案 0 :(得分:4)

有一个名为hirefire的宝石专门用于:

  

HireFire自动“雇佣”和“开火”(又名“秤”)延迟工作   Heroku上的工作人员和Resque工作人员。当没有队列作业时,HireFire   会解雇(关闭)所有工人。如果有排队的工作,那么   它会聘请(提升)工人。被雇佣的工人数量   取决于排队作业的数量(可以配置比率   您)。 HireFire非常适合高,中,低流量   应用。只雇用员工可以为您节省很多钱   当有待处理的作业,然后再一次点击它们   工作已经处理完毕。它还能够大幅减少   通过在队列中自动雇用更多工人来处理时间   规模增加。