Rails 3.1 + Heroku = 工作进程崩溃

3

我刚刚创建了一个全新的Rails 3.1.1 应用程序(Ruby 1.8.7)。在应用程序中加入了一些脚手架,安装了Authlogic,并创建了一个新的Heroku应用。将其推送到Heroku并迁移数据库。一切都很好。我可以使用Authlogic创建新用户帐户,并在Heroku上为我的模型创建新记录。

有趣的是,如果我将“worker dynos”从零增加到任何值,heroku日志将显示这些工作程序正在尝试启动并崩溃。

但是,我没有安装Delayed Job,并且从未向此应用程序引入Delayed Job

除了Twilio之外,我也没有引入任何其他“高级”gem或任何高级代码。它只是具有authlogic的新rails应用程序。也没有新的rake任务。

另一个需要注意的事项:在我的本地开发机器上,我曾经试图在不同的应用程序上安装Delayed Job,但失败了。Delayed Job的“幽灵”是否会困扰这个新应用程序呢?

谢谢!

下面是代码.....

当我将Web workers从0-->2增加后的Heroku日志如下。

2012-04-01T11:44:04+00:00 heroku[api]: Scale to web=1, worker=2 by doug@goinfield.com
2012-04-01T11:44:07+00:00 heroku[worker.2]: Starting process with command `bundle exec rake jobs:work`
2012-04-01T11:44:07+00:00 heroku[worker.1]: Starting process with command `bundle exec      rake jobs:work`
2012-04-01T11:44:08+00:00 heroku[worker.2]: State changed from starting to up
2012-04-01T11:44:08+00:00 heroku[worker.1]: State changed from starting to up
2012-04-01T11:44:11+00:00 app[worker.2]: rake aborted!
2012-04-01T11:44:11+00:00 app[worker.2]: Don't know how to build task 'jobs:work'
2012-04-01T11:44:11+00:00 app[worker.2]: 
2012-04-01T11:44:11+00:00 app[worker.2]: (See full trace by running task with --trace)
2012-04-01T11:44:12+00:00 heroku[worker.2]: Process exited with status 1
2012-04-01T11:44:12+00:00 heroku[worker.2]: State changed from up to crashed
2012-04-01T11:44:12+00:00 heroku[worker.2]: State changed from crashed to created
2012-04-01T11:44:12+00:00 heroku[worker.2]: State changed from created to starting
2012-04-01T11:44:13+00:00 app[worker.1]: rake aborted!
2012-04-01T11:44:13+00:00 app[worker.1]: Don't know how to build task 'jobs:work'
2012-04-01T11:44:13+00:00 app[worker.1]: 
2012-04-01T11:44:13+00:00 app[worker.1]: (See full trace by running task with --trace)
2012-04-01T11:44:14+00:00 heroku[worker.1]: Process exited with status 1
2012-04-01T11:44:14+00:00 heroku[worker.1]: State changed from up to crashed
2012-04-01T11:44:14+00:00 heroku[worker.1]: State changed from crashed to created
2012-04-01T11:44:14+00:00 heroku[worker.1]: State changed from created to starting
2012-04-01T11:44:16+00:00 heroku[worker.2]: Starting process with command `bundle exec rake jobs:work`
2012-04-01T11:44:17+00:00 heroku[worker.2]: State changed from starting to up
2012-04-01T11:44:18+00:00 heroku[worker.1]: Starting process with command `bundle exec rake jobs:work`
2012-04-01T11:44:19+00:00 heroku[worker.1]: State changed from starting to up
2012-04-01T11:44:20+00:00 app[worker.2]: rake aborted!
2012-04-01T11:44:20+00:00 app[worker.2]: Don't know how to build task 'jobs:work'
2012-04-01T11:44:20+00:00 app[worker.2]: 
2012-04-01T11:44:20+00:00 app[worker.2]: (See full trace by running task with --trace)
2012-04-01T11:44:22+00:00 heroku[worker.2]: Process exited with status 1
2012-04-01T11:44:22+00:00 heroku[worker.2]: State changed from up to crashed
2012-04-01T11:44:22+00:00 app[worker.1]: rake aborted!
2012-04-01T11:44:22+00:00 app[worker.1]: Don't know how to build task 'jobs:work'
2012-04-01T11:44:22+00:00 app[worker.1]: 
2012-04-01T11:44:22+00:00 app[worker.1]: (See full trace by running task with --trace)
2012-04-01T11:44:23+00:00 heroku[worker.1]: Process exited with status 1
2012-04-01T11:44:23+00:00 heroku[worker.1]: State changed from up to crashed

Gemfile.lock

GEM
  remote: http://rubygems.org/
  specs:
    actionmailer (3.1.1)
      actionpack (= 3.1.1)
      mail (~> 2.3.0)
    actionpack (3.1.1)
      activemodel (= 3.1.1)
      activesupport (= 3.1.1)
      builder (~> 3.0.0)
      erubis (~> 2.7.0)
      i18n (~> 0.6)
      rack (~> 1.3.2)
      rack-cache (~> 1.1)
      rack-mount (~> 0.8.2)
      rack-test (~> 0.6.1)
      sprockets (~> 2.0.2)
    activemodel (3.1.1)
      activesupport (= 3.1.1)
      builder (~> 3.0.0)
      i18n (~> 0.6)
    activerecord (3.1.1)
      activemodel (= 3.1.1)
      activesupport (= 3.1.1)
      arel (~> 2.2.1)
      tzinfo (~> 0.3.29)
    activeresource (3.1.1)
      activemodel (= 3.1.1)
      activesupport (= 3.1.1)
    activesupport (3.1.1)
      multi_json (~> 1.0)
    addressable (2.2.7)
    arel (2.2.3)
    authlogic (3.1.0)
      activerecord (>= 3.0.7)
      activerecord (>= 3.0.7)
    builder (3.0.0)
    coffee-rails (3.1.1)
      coffee-script (>= 2.2.0)
      railties (~> 3.1.0)
    coffee-script (2.2.0)
      coffee-script-source
      execjs
    coffee-script-source (1.2.0)
    erubis (2.7.0)
    execjs (1.3.0)
      multi_json (~> 1.0)
    heroku (2.23.0)
      launchy (>= 0.3.2)
      netrc (~> 0.7.1)
      rest-client (~> 1.6.1)
      rubyzip 
    hike (1.2.1)
    i18n (0.6.0)
    jquery-rails (1.0.16)
      railties (~> 3.0)
      thor (~> 0.14)
    json (1.5.1)
    launchy (2.1.0)
      addressable (~> 2.2.6)
    mail (2.3.3)
      i18n (>= 0.4.0)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mime-types (1.18)
    multi_json (1.2.0)
    netrc (0.7.1)
    pg (0.13.2)
    polyglot (0.3.3)
    rack (1.3.6)
    rack-cache (1.2)
      rack (>= 0.4)
    rack-mount (0.8.3)
      rack (>= 1.0.0)
    rack-ssl (1.3.2)
      rack
    rack-test (0.6.1)
      rack (>= 1.0)
    rails (3.1.1)
      actionmailer (= 3.1.1)
      actionpack (= 3.1.1)
      activerecord (= 3.1.1)
      activeresource (= 3.1.1)
      activesupport (= 3.1.1)
      bundler (~> 1.0)
      railties (= 3.1.1)
    railties (3.1.1)
      actionpack (= 3.1.1)
      activesupport (= 3.1.1)
      rack-ssl (~> 1.3.2)
      rake (>= 0.8.7)
      rdoc (~> 3.4)
      thor (~> 0.14.6)
    rake (0.9.2.2)
    rdoc (3.12)
      json (~> 1.4)
    rest-client (1.6.7)
      mime-types (>= 1.16)
    rubyzip (0.9.4)
    sass (3.1.15)
    sass-rails (3.1.4) 
      actionpack (~> 3.1.0)
      railties (~> 3.1.0)
      sass (>= 3.1.4)
      sprockets (~> 2.0.0)
      tilt (~> 1.3.2)
    sequel (3.20.0)   
    sinatra (1.0)
      rack (>= 1.0)
    sprockets (2.0.3)
       hike (~> 1.2)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sqlite3 (1.3.4)
    sqlite3-ruby (1.3.3)
      sqlite3 (>= 1.3.3)
    taps (0.3.23)
       rack (>= 1.0.1)
      rest-client (>= 1.4.0, < 1.7.0)
      sequel (~> 3.20.0)
      sinatra (~> 1.0.0)
      sqlite3-ruby (~> 1.2)
    thor (0.14.6)
    tilt (1.3.3)
    treetop (1.4.10)
      polyglot
      polyglot (>= 0.3.1)
    twiliolib (2.0.7)
      builder (>= 2.1.2)
    tzinfo (0.3.32)
    uglifier (1.2.4)
      execjs (>= 0.3.0)
      multi_json (>= 1.0.2)

PLATFORMS
  ruby

DEPENDENCIES
  authlogic
  coffee-rails (~> 3.1.1)
  heroku
  jquery-rails
  json
  pg
  rails (= 3.1.1)
  sass-rails (~> 3.1.4)
  sqlite3
  taps
  twiliolib
  uglifier (>= 1.0.3)

使用列出的gems进行Heroku推送

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Detected Rails is not set to serve static_assets
       Installing rails3_serve_static_assets... done
-----> Configure Rails 3 to disable x-sendfile
       Installing rails3_disable_x_sendfile... done
-----> Configure Rails to log to stdout
       Installing rails_log_stdout... done
-----> Gemfile detected, running Bundler version 1.0.7
       Unresolved dependencies detected; Installing...
        Using --without development:test
        Fetching source index for http://rubygems.org/
       Installing rake (0.9.2.2) 
       Installing multi_json (1.2.0) 
       Installing activesupport (3.1.1)    
       Installing builder (3.0.0) 
       Installing i18n (0.6.0) 
       Installing activemodel (3.1.1) 
       Installing erubis (2.7.0) 
       Installing rack (1.3.6) 
       Installing rack-cache (1.2) 
       Installing rack-mount (0.8.3) 
       Installing rack-test (0.6.1) 
       Installing hike (1.2.1) 
       Installing tilt (1.3.3) 
       Installing sprockets (2.0.3) 
       Installing actionpack (3.1.1) 
       Installing mime-types (1.18) 
       Installing polyglot (0.3.3) 
       Installing treetop (1.4.10) 
       Installing mail (2.3.3) 
       Installing actionmailer (3.1.1) 
       Installing arel (2.2.3) 
       Installing tzinfo (0.3.32) 
       Installing activerecord (3.1.1) 
       Installing activeresource (3.1.1) 
       Installing addressable (2.2.7) 
       Installing authlogic (3.1.0) 
       Installing coffee-script-source (1.2.0) 
       Installing execjs (1.3.0) 
       Installing coffee-script (2.2.0) 
       Installing rack-ssl (1.3.2) 
       Installing json (1.5.1) with native extensions 
       Installing rdoc (3.12) 
       Installing thor (0.14.6) 
       Installing railties (3.1.1) 
       Installing coffee-rails (3.1.1) 
       Installing launchy (2.1.0) 
       Installing netrc (0.7.1) 
       Installing rest-client (1.6.7) 
       Installing rubyzip (0.9.4) 
       Installing heroku (2.23.0) 
       Installing jquery-rails (1.0.16) 
       Installing pg (0.13.2) with native extensions 
       Using bundler (1.0.7) 
       Installing rails (3.1.1) 
       Installing sass (3.1.15) 
       Installing sass-rails (3.1.4) 
       Installing sequel (3.20.0) 
       Installing sinatra (1.0) 
       Installing sqlite3 (1.3.4) with native extensions 
       Installing sqlite3-ruby (1.3.3) 
       Installing taps (0.3.23) 
       Installing twiliolib (2.0.7) 
       Installing uglifier (1.2.4) 
       Your bundle is complete! It was installed into ./.bundle/gems/
-----> Compiled slug size is 7.8MB
-----> Launching... done, v4

Heroku的堆栈如下所示:

  aspen-mri-1.8.6
* bamboo-mri-1.9.2
  bamboo-ree-1.8.7
  cedar (beta)
1个回答

4

Worker dynos专门处理Delayed Job任务。

如果您没有安装Delayed Job,则不应该扩展工作进程计数(这就是负责DJ Jobs的东西)。

如果您想要扩展Web dynos,那么只需按照所需进行web = 2或任何其他比例即可。

我猜您的错误是因为新扩展的DJ workers找不到要处理的作业,从而出现错误。

请将worker = 0进行缩放,然后查看是否可以解决问题。

如果您想要通过扩展Web dynos来获得更好的性能,请使用web。

有关Heroku dyno类型的更多文档,请参见:https://devcenter.heroku.com/articles/scaling


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接