是否可以从rails中的另一台服务器运行rake任务

时间:2013-02-20 06:11:55

标签: ruby-on-rails-3 cron rake crontab rake-task

我有一个在ruby on rails 3.0.7上开发的书签网站,每次都会运行许多rake文件来获取带有书签的URL详细信息并添加用户信息。由于rake每次都在运行,我的服务器已经投入使用,其CPU利用率为100%。我需要通过将所有rakes保存在数据库中并将其放入队列中来在另一台服务器中运行我的rake文件。

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

有没有选择在另一台服务器上运行rake文件?或者我如何在rails中设置动态cron作业?

请帮帮我

感谢。

1 个答案:

答案 0 :(得分:0)

看起来像是后台工作者的工作。红宝石有很多解决方案。

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

以下是关于工人的轨道广播的集合:Background Job railscasts

我目前最喜欢的是Sidekiq。