~/.rvm/gems/ruby-1.8.7-p302/gems/deprecated-2.0.1/lib/deprecated.rb:176:in `instance_method': {:subclasses=>:descendants} is not a symbol (TypeError)
from ~/.rvm/gems/ruby-1.8.7-p302/gems/deprecated-2.0.1/lib/deprecated.rb:176:in `deprecate'
from ~/.rvm/gems/ruby-1.8.7-p302/gems/activerecord-3.0.0/lib/active_record/base.rb:328
from ~/.rvm/gems/ruby-1.8.7-p302/gems/delayed_job-1.8.4/lib/delayed/job.rb:10
from ~/.rvm/gems/ruby-1.8.7-p302/gems/delayed_job-1.8.4/lib/delayed_job.rb:5:in `require'
from ~/.rvm/gems/ruby-1.8.7-p302/gems/delayed_job-1.8.4/lib/delayed_job.rb:5
from ~/.rvm/gems/ruby-1.8.7-p302@global/gems/bundler-1.0.2/lib/bundler/runtime.rb:64:in `require'
from ~/.rvm/gems/ruby-1.8.7-p302@global/gems/bundler-1.0.2/lib/bundler/runtime.rb:64:in `require'
from ~/.rvm/gems/ruby-1.8.7-p302@global/gems/bundler-1.0.2/lib/bundler/runtime.rb:62:in `each'
from ~/.rvm/gems/ruby-1.8.7-p302@global/gems/bundler-1.0.2/lib/bundler/runtime.rb:62:in `require'
from ~/.rvm/gems/ruby-1.8.7-p302@global/gems/bundler-1.0.2/lib/bundler/runtime.rb:51:in `each'
from ~/.rvm/gems/ruby-1.8.7-p302@global/gems/bundler-1.0.2/lib/bundler/runtime.rb:51:in `require'
from ~/.rvm/gems/ruby-1.8.7-p302@global/gems/bundler-1.0.2/lib/bundler.rb:112:in `require'
from /media/data~/workspace/wally/config/application.rb:11
from ~/.rvm/gems/ruby-1.8.7-p302/gems/railties-3.0.0/lib/rails/commands.rb:28:in `require'
from ~/.rvm/gems/ruby-1.8.7-p302/gems/railties-3.0.0/lib/rails/commands.rb:28
from ~/.rvm/gems/ruby-1.8.7-p302/gems/railties-3.0.0/lib/rails/commands.rb:27:in `tap'
from ~/.rvm/gems/ruby-1.8.7-p302/gems/railties-3.0.0/lib/rails/commands.rb:27
from script/rails:6:in `require'
from script/rails:6
With a bit of work, I'm able to get all of the pieces functioning except for the workers. (Jobs get saved to the table correctly without too much finagling.)
"rake jobs:work" will execute, but it doesn't actually find any of the jobs that have been stored in the jobs table. "script/delayed_job start" seems to behave the same way. Looking through the code, I really couldn't tell you _why_ it isn't working (it doesn't make much sense that the piece that is supposed to operate separately from Rails is the part that's broken), but it's not.
OK, I got it working as a gem (previously, I was trying to run it as a plugin -- perhaps foolishly). Sincere apologies for any confusion I've caused.
One (unrelated) thing that tripped me up but was easy to overcome:
All the documentation and capistrano recipes I've seen say to run "RAILS_ENV=production script/delayed_job start" to start the worker, but I was getting permission errors when I ran it that way on both my development and production machines. I got it running by inserting ruby into that command (i.e., "RAILS_ENV=production ruby script/delayed_job start").
It was a pretty obvious thing to try, so it wasn't hard, but I thought I'd mention it in case anybody else has the same problem. Sorry again for claiming it doesn't work (above) when, as a gem, it seems to work fine.
DEPRECATION WARNING: Base#before_save has been deprecated, please use Base.before_save :method instead. (called from /Library/Ruby/Gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:255)