0

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

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

是否有任何选项可以在另一台服务器上运行 rake 文件?或如何在 Rails 中设置动态 cron 作业?

请帮我

谢谢。

4

1 回答 1

0

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

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

以下是关于工人的 railscast 集合:Background Job railscasts

我目前最喜欢的是 Sidekiq。

于 2013-02-20T06:17:07.330 回答