【问题标题】:Auto restart rake task if it give exception如果出现异常,则自动重新启动 rake 任务
【发布时间】:2012-07-31 09:52:25
【问题描述】:

我有一个必须始终运行的 rake 任务。但有时这项任务可能会失败。我需要自动重启吗?我想我需要使用God gem 或者有其他方法可以解决这个问题?

【问题讨论】:

    标签: ruby-on-rails rake-task god


    【解决方案1】:

    这完全取决于你的问题,但是纯 Ruby 解决方案怎么样:

    begin
      puts "Start"
      raise "BOOOM"
    rescue Exception => e
      puts e.message
      sleep(2)
      retry
    end
    

    每次捕获异常时重试开始阻塞。

    【讨论】:

      【解决方案2】:

      在我的情况下,God gem 是我需要的,谢谢你的回答!

      【讨论】:

        【解决方案3】:

        如果您使用的是 ubuntu,您可以通过如下配置轻松使用 upstart:

        start on startup
        stop on shutdown
        
        pre-start script
           cd /var/www/my-app/current
        end script
        
        script
           exec RAILS_ENV=production bundle exec rake my_task_name
        end script
        

        在此处阅读更多信息:http://www.stackednotion.com/blog/2012/02/09/easy-rails-daemons-with-upstart/

        【讨论】:

          猜你喜欢
          • 2017-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-02
          • 1970-01-01
          • 2012-05-04
          • 1970-01-01
          相关资源
          最近更新 更多