ruby-on-rails - 处理长时间运行的 rake 任务

标签 ruby-on-rails rake delayed-job rake-task

我对运行一个很长的 rake 任务很感兴趣,一个需要几个小时才能完成的任务,我有兴趣了解处理这个问题的最佳实践。

我发现的可能解决方案:

  • 设置定时任务
  • 延迟作业
  • 资源

  • cron 似乎是一个简单的设置解决方案,但它是非常长的任务的理想选择吗?您使用什么以及您的解决方案的优点/缺点是什么?

    最佳答案

    我个人喜欢 Resque,你可以使用 resque-scheduler gem 来处理长时间运行或周期性的任务。

    如果您不必经常运行您的任务,您可以将 rake 任务妖魔化,以确保它在您的 SSH session 终止或其他情况下继续运行。

    尝试这样的事情:

    nohup rake my:task &
    
    nohup将输出发送到 nohup.out在您运行任务的目录中,并且还会让您离开 ssh session 而不会终止进程,其次是 &将它作为守护进程运行。

    关于ruby-on-rails - 处理长时间运行的 rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9877232/

    相关文章:

    ruby-on-rails - 使用Delayed::Job时使用ActiveJob设置优先级

    ruby-on-rails - Rails 3延迟作业重新启动后启动

    javascript - 带有 turbolinks 和窗口负载的 rails 4

    ruby-on-rails - 为 ruby​​ on rails 应用程序生成 WAR 文件

    ruby - 实现 gem ruby rake 测试的最新技术/最佳实践是什么?

    ruby-on-rails - 系统堆栈错误 : level too deep after running db:seed

    ruby - 我如何将参数从命令行传递给rake然后rspec

    ruby-on-rails - 使用 RSpec 和 Capybara 测试 Rails 应用程序。我收到错误 Capybara::ElementNotFound

    javascript - Rails link_to 和 onClick 与 target=_blank 不能一起工作

    ruby-on-rails - 在 Ruby on Rails 中发送动态电子邮件提醒?