Rails 3.1 + Heroku = Workers Crash

So, I just hoisted up a brand new Rails 3.1.1 (Ruby 1.8.7) application.

Put a few suburbs in there, install Authlogic and create a new Heroku app. Pushed it to Heroku and ported DB.

And everything's good. I can create new user accounts with Authlogic and create new accounts in my models on Heroku.

It's a funny thing. If I increase my "work dynamics" from zero to anything, heroku logs show those workers are trying to get started and they crash.

But I don't have a set delay. And never introduced Delayed Job to this app

I also haven't provided any "advanced" gems other than Twilio or any advanced code. This is just a new rails app with authlogic. No new rake challenges.

One more note. On my local development machine, I tried to install Delayed Job in another application a while ago and failed. Could the ghosts of deferred work haunt this new app?

Thank!

code below .....

Heroku logs after I increased the number of web workers from 0 to> 2.

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)

      

Heroku press with gems indicated

-----> 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 stack gives the following:

  aspen-mri-1.8.6
* bamboo-mri-1.9.2
  bamboo-ree-1.8.7
  cedar (beta)

      

+3


source to share


1 answer


Worker dynodes work exclusively on tasks with a job delay.

If you don't have a delay job set, then you don't have to scale your employees counter (this is what DJ Jobs will take care of).

If you want to scale your web dynodes, just scale web = 2 or whatever you need.

I guess your mistake is that your newly changed DJ workers cannot find any assignments and they are wrong.



Worker scale = 0 and see if it fixes it.

And if you want to scale your web dynodes for better performance, web is what you are looking for.

More documentation on Heroku Tyrone types here: https://devcenter.heroku.com/articles/scaling

+4


source







All Articles