2013-02-20 94 views
0

我有一个在ruby on rails 3.0.7中开发的书签网站,并且每次都运行许多rake文件以获取书签的URL详细信息并添加用户信息。由于rake每次都在运行,我的服务器开始工作,其CPU利用率为100%。我需要在另一台服务器上运行我的rake文件,方法是将所有rake保存在数据库中并放入队列中。是否有可能从Rails的另一台服务器运行rake任务

我在单独的服务器中设置了一个cron来处理rake任务的队列,并且我的文件被共享了。但是rake任务仍然从开发服务器运行。

是否有任何选项在其他服务器上运行rake文件?或者我如何在rails中设置动态cron作业?

请帮我

谢谢。

回答

0

看起来像一个背景工作的工作。有许多Ruby解决方案。

其基本思路是:你将任务提交给队列(由/ /任何支持)。然后另一个进程(worker)从队列中弹出任务并在后台执行它们,而不会阻塞或影响您的应用程序。当然,你可以有多个工人,他们可以位于其他机器上。

以下是有关工作人员的集合:Background Job railscasts

我目前最喜欢的是Sidekiq。

相关问题