GithubHelp home page GithubHelp logo

delayed_job_active_record's Introduction

If you're viewing this at https://github.com/collectiveidea/delayed_job_active_record, you're reading the documentation for the master branch. View documentation for the latest release (4.1.7).

DelayedJob ActiveRecord Backend

Gem Version CI Coverage Status

Installation

Add the gem to your Gemfile:

gem 'delayed_job_active_record'

Run bundle install.

If you're using Rails, run the generator to create the migration for the delayed_job table.

rails g delayed_job:active_record
rake db:migrate

Problems locking jobs

You can try using the legacy locking code. It is usually slower but works better for certain people.

Delayed::Backend::ActiveRecord.configuration.reserve_sql_strategy = :default_sql

Upgrading from 2.x to 3.0.0

If you're upgrading from Delayed Job 2.x, run the upgrade generator to create a migration to add a column to your delayed_jobs table.

rails g delayed_job:upgrade
rake db:migrate

That's it. Use delayed_job as normal.

delayed_job_active_record's People

Contributors

afiedler avatar albus522 avatar betamatt avatar bjer avatar bryckbost avatar cofyc avatar csmuc avatar domitian avatar eitoball avatar eric88 avatar guiocavalcanti avatar klausmeyer avatar laserlemon avatar matthewrudy avatar michalczapko avatar msch avatar mvastola avatar orien avatar p8 avatar pixeltrix avatar racerpeter avatar rvasquez-flip4new avatar rwz avatar scosman avatar sferik avatar shiroginne avatar superchris avatar tmikoss avatar willnet avatar yuki24 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

delayed_job_active_record's Issues

clean rails3 app raises ActiveRecord::ConnectionNotEstablished

to reproduce:

$ rails new railsfail
$ echo "gem 'delayed_job_active_record'" >> Gemfile
$ bundle install

$ bundle exec rake -T
rake aborted!
ActiveRecord::ConnectionNotEstablished

$ bundle exec rails g delayed_job:active_record
/Users/nessence/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:318:in retrieve_connection': ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished) ... from /Users/nessence/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job_active_record-0.3.1/lib/delayed/backend/active_record.rb:25:inclass:Job'
...

Also caused by simple command-line use:
$ irb
1.9.2-p290 :001 > require 'rubygems'
=> false
1.9.2-p290 :002 > require 'delayed_job_active_record'
ActiveRecord::ConnectionNotEstablished: ActiveRecord::ConnectionNotEstablished

This is from a fresh install of ruby via 'rvm install 1.9.2' and is triggered by the call to scope in active_record.rb (see trace).

What's the best way around this bug and/or to [safely] establish a connection for DJ before the ActiveRecord model is evaluated? [w/o upgrading rails]

For reference
$ bundle list
Gems included by the bundle:

  • [standard rails3, rack, etc. gems]
  • bundler (1.0.21)
  • delayed_job (3.0.0)
  • delayed_job_active_record (0.3.1)
  • rake (0.9.2)

rails g delayed_job:upgrade fails under Rails3.2

Summary:

Upgrading from DJ 2.1.4 / Rails 3.0 to DJ 3.0 / Rails 3.2 fails in rails g delayed_job:upgrade with the message Could not find generator delayed_job:upgrade. I am:

  • Using delayed_job (3.0.1)
  • Using delayed_job_active_record (0.2.1)

To replicate:

$ bundle install
Using rake (0.9.2.2) 
Using ZenTest (4.6.2) 
Using i18n (0.6.0) 
Using multi_json (1.0.4) 
Using activesupport (3.2.0) 
Using builder (3.0.0) 
Using activemodel (3.2.0) 
Using erubis (2.7.0) 
Using journey (1.0.1) 
Using rack (1.4.1) 
Using rack-cache (1.1) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.2) 
Using actionpack (3.2.0) 
Using mime-types (1.17.2) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.1) 
Using actionmailer (3.2.0) 
Using arel (3.0.0) 
Using tzinfo (0.3.31) 
Using activerecord (3.2.0) 
Using activeresource (3.2.0) 
Using addressable (2.2.6) 
Using annotate (2.4.0) 
Using encryptor (1.1.3) 
Using attr_encrypted (1.2.0) 
Using autotest (4.4.6) 
Using bcrypt-ruby (3.0.1) 
Using bluecloth (2.2.0) 
Using bundler (1.0.21) 
Using cancan (1.6.7) 
Using crack (0.3.1) 
Using daemons (1.1.6) 
Using delayed_job (3.0.1) 
Using delayed_job_active_record (0.2.1) 
Using orm_adapter (0.0.6) 
Using rack-ssl (1.3.2) 
Using json (1.6.5) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.0) 
Using warden (1.1.0) 
Using devise (2.0.0) 
Using diff-lcs (1.1.3) 
Using unf_ext (0.0.4) 
Using unf (0.0.4) 
Using domain_name (0.5.2) 
Using eventmachine (0.12.10) 
Using jquery-rails (2.0.0) 
Using net-http-digest_auth (1.2) 
Using net-http-persistent (2.3.3) 
Using nokogiri (1.5.0) 
Using ntlm-http (0.1.1) 
Using webrobots (0.0.13) 
Using mechanize (2.1) 
Using pg (0.12.2) 
Using rails (3.2.0) 
Using rspec-core (2.8.0) 
Using rspec-expectations (2.8.0) 
Using rspec-mocks (2.8.0) 
Using rspec (2.8.0) 
Using rspec-rails (2.8.1) 
Using ruby-graphviz (1.0.3) 
Using ruby-prof (0.10.8) 
Using thin (1.3.1) 
Using vcr (1.11.3) 
Using webmock (1.7.10) 
Using webrat (0.7.3) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.�

$ rails g delayed_job:upgrade
DEPRECATION WARNING: Calling set_table_name is deprecated. Please use `self.table_name = 'the_name'` instead. (called from <top (required)> at /Users/me/myapp/config/application.rb:7)
Could not find generator delayed_job:upgrade.

(FWIW, I believe the deprecation warning is a rake problem, not a delayed_job problem.)

Jobs run multiple times with Rails 3.2.13

Upgraded to Rails 3.2.13. Seeing jobs run multiple times, likely due to being picked up by multiple workers. Not respecting the lock fields, or losing them in scoping? Tried to pick out the specific queries in the log, but I couldn't suss out the issue. Reverting to Rails 3.2.12 fixes the problem.

Perhaps due to rails/rails@f980289

Unable to have DJ tasks available in an engine

I'm trying to use delayed_job_active_record in an engine, but the problem I'm facing is that rake tasks are not available after the bundle install.
I've noticed that the delayed_job_active_record.rb in the lib has a ruby require 'delayed_job' and delayed_job.rb has a ruby require 'delayed/railtie' if defined?(Rails::Railtie) .
So I don't know what I missing if there's a Railtie that loads the tasks. Is this an issue with delayed_job_active_record? or am I missing something?

including gem 'delayed_job_active_record' causes [BUG] Segmentation fault ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.3.0]

I am using rails 3.2.6, ruby 1.9.3-p194 on a mac.

Whenever I include the gem and run "rails c", it will crash with the following error:

[BUG] Segmentation fault
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.3.0]

-- Control frame information -----------------------------------------------
c:0063 p:---- s:0199 b:0199 l:000198 d:000198 CFUNC :initialize_copy
c:0062 p:---- s:0197 b:0197 l:000196 d:000196 CFUNC :initialize_dup
c:0061 p:---- s:0195 b:0195 l:000194 d:000194 CFUNC :dup
c:0060 p:0020 s:0192 b:0192 l:000191 d:000191 CLASS /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/delegate.rb:44
c:0059 p:0015 s:0189 b:0189 l:000188 d:000188 TOP /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/delegate.rb:43
c:0058 p:---- s:0184 b:0184 l:000183 d:000183 FINISH
c:0057 p:---- s:0182 b:0182 l:000181 d:000181 CFUNC :require
c:0056 p:0010 s:0178 b:0178 l:000170 d:000177 BLOCK /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0055 p:0071 s:0176 b:0176 l:000175 d:000175 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236
c:0054 p:0019 s:0171 b:0171 l:000170 d:000170 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0053 p:0011 s:0166 b:0166 l:000165 d:000165 TOP /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tempfile.rb:7
c:0052 p:---- s:0163 b:0163 l:000162 d:000162 FINISH
c:0051 p:---- s:0161 b:0161 l:000160 d:000160 CFUNC :require
c:0050 p:0010 s:0157 b:0157 l:000149 d:000156 BLOCK /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0049 p:0071 s:0155 b:0155 l:000154 d:000154 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236
c:0048 p:0019 s:0150 b:0150 l:000149 d:000149 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0047 p:0011 s:0145 b:0145 l:000144 d:000144 TOP /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/http/request.rb:1
c:0046 p:---- s:0143 b:0143 l:000142 d:000142 FINISH
c:0045 p:---- s:0141 b:0141 l:000140 d:000140 CFUNC :require
c:0044 p:0010 s:0137 b:0137 l:000129 d:000136 BLOCK /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0043 p:0071 s:0135 b:0135 l:000134 d:000134 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236
c:0042 p:0019 s:0130 b:0130 l:000129 d:000129 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0041 p:0011 s:0125 b:0125 l:000124 d:000124 TOP /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/routing/redirection.rb:1
c:0040 p:---- s:0123 b:0123 l:000122 d:000122 FINISH
c:0039 p:---- s:0121 b:0121 l:000120 d:000120 CFUNC :require
c:0038 p:0010 s:0117 b:0117 l:000109 d:000116 BLOCK /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0037 p:0071 s:0115 b:0115 l:000114 d:000114 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236
c:0036 p:0019 s:0110 b:0110 l:000109 d:000109 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0035 p:0059 s:0105 b:0105 l:000104 d:000104 TOP /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/routing/mapper.rb:5
c:0034 p:---- s:0103 b:0103 l:000102 d:000102 FINISH
c:0033 p:0021 s:0101 b:0101 l:000100 d:000100 CLASS /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/rails/routes.rb:30
c:0032 p:0038 s:0099 b:0099 l:000098 d:000098 TOP /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/rails/routes.rb:4
c:0031 p:---- s:0097 b:0097 l:000096 d:000096 FINISH
c:0030 p:---- s:0095 b:0095 l:000094 d:000094 CFUNC :require
c:0029 p:0010 s:0091 b:0091 l:000083 d:000090 BLOCK /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0028 p:0071 s:0089 b:0089 l:000088 d:000088 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236
c:0027 p:0019 s:0084 b:0084 l:000083 d:000083 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0026 p:0011 s:0079 b:0079 l:000078 d:000078 TOP /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/rails.rb:1
c:0025 p:---- s:0077 b:0077 l:000076 d:000076 FINISH
c:0024 p:---- s:0075 b:0075 l:000074 d:000074 CFUNC :require
c:0023 p:0010 s:0071 b:0071 l:000063 d:000070 BLOCK /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0022 p:0071 s:0069 b:0069 l:000068 d:000068 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236
c:0021 p:0019 s:0064 b:0064 l:000063 d:000063 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251
c:0020 p:0141 s:0059 b:0059 l:000058 d:000058 TOP /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise.rb:439
c:0019 p:---- s:0057 b:0057 l:000056 d:000056 FINISH
c:0018 p:---- s:0055 b:0055 l:000054 d:000054 CFUNC :require
c:0017 p:0026 s:0051 b:0051 l:000031 d:000050 BLOCK /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:68
c:0016 p:---- s:0048 b:0048 l:000047 d:000047 FINISH
c:0015 p:---- s:0046 b:0046 l:000045 d:000045 CFUNC :each
c:0014 p:0091 s:0043 b:0043 l:000031 d:000042 BLOCK /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:66
c:0013 p:---- s:0037 b:0037 l:000036 d:000036 FINISH
c:0012 p:---- s:0035 b:0035 l:000034 d:000034 CFUNC :each
c:0011 p:0046 s:0032 b:0032 l:000031 d:000031 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:55
c:0010 p:0021 s:0028 b:0028 l:000027 d:000027 METHOD /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler.rb:119
c:0009 p:0089 s:0024 b:0024 l:000023 d:000023 TOP /Users/noahs/Desktop/deries/config/application.rb:7
c:0008 p:---- s:0022 b:0022 l:000021 d:000021 FINISH
c:0007 p:---- s:0020 b:0020 l:000019 d:000019 CFUNC :require
c:0006 p:0543 s:0016 b:0016 l:000015 d:000015 TOP /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/commands.rb:39
c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :require
c:0003 p:0061 s:0006 b:0006 l:0003a8 d:0000d8 EVAL script/rails:6
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0003a8 d:0003a8 TOP

-- Ruby level backtrace information ----------------------------------------
script/rails:6:in <main>' script/rails:6:inrequire'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/commands.rb:39:in <top (required)>' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/commands.rb:39:inrequire'
/Users/noahs/Desktop/deries/config/application.rb:7:in <top (required)>' /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler.rb:119:inrequire'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:55:in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:55:ineach'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:66:in block in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:66:ineach'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:68:in block (2 levels) in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:68:inrequire'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise.rb:439:in <top (required)>' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inrequire'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in load_dependency' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inblock in require'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/rails.rb:1:in<top (required)>'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:inload_dependency'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in block in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inrequire'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/rails/routes.rb:4:in <top (required)>' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/rails/routes.rb:30:inmodule:Routing'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/routing/mapper.rb:5:in <top (required)>' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inrequire'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in load_dependency' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inblock in require'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/routing/redirection.rb:1:in<top (required)>'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:inload_dependency'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in block in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inrequire'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/http/request.rb:1:in <top (required)>' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inrequire'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in load_dependency' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inblock in require'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in require' /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tempfile.rb:7:in<top (required)>'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:inload_dependency'
/Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in block in require' /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:inrequire'
/Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/delegate.rb:43:in <top (required)>' /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/delegate.rb:44:inclass:Delegator'
/Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/delegate.rb:44:in dup' /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/delegate.rb:44:ininitialize_dup'
/Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/delegate.rb:44:in `initialize_copy'

-- C level backtrace information -------------------------------------------

See Crash Report log file under ~/Library/Logs/CrashReporter or
/Library/Logs/CrashReporter, for the more detail of.

-- Other runtime information -----------------------------------------------

  • Loaded script: script/rails

  • Loaded features:

    0 enumerator.so
    1 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/enc/encdb.bundle
    2 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/enc/trans/transdb.bundle
    3 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/defaults.rb
    4 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/rbconfig.rb
    5 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/deprecate.rb
    6 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/exceptions.rb
    7 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb
    8 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb
    9 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/pathname.bundle
    10 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/pathname.rb
    11 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/version.rb
    12 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/etc.bundle
    13 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb
    14 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb
    15 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb
    16 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/platform.rb
    17 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb
    18 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/path_support.rb
    19 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/syntax_error.rb
    20 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/psych.bundle
    21 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/stringio.bundle
    22 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/nodes/node.rb
    23 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/nodes/stream.rb
    24 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/nodes/document.rb
    25 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/nodes/sequence.rb
    26 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/nodes/scalar.rb
    27 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/nodes/mapping.rb
    28 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/nodes/alias.rb
    29 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/nodes.rb
    30 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/streaming.rb
    31 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/visitor.rb
    32 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/strscan.bundle
    33 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/scalar_scanner.rb
    34 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb
    35 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/emitter.rb
    36 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb
    37 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/json/ruby_events.rb
    38 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/json_tree.rb
    39 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/depth_first.rb
    40 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors.rb
    41 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/handler.rb
    42 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/tree_builder.rb
    43 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/parser.rb
    44 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/omap.rb
    45 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/set.rb
    46 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/coder.rb
    47 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/core_ext.rb
    48 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/date_core.bundle
    49 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/date/format.rb
    50 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/date.rb
    51 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/deprecated.rb
    52 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/stream.rb
    53 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/json/yaml_events.rb
    54 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/json/tree_builder.rb
    55 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/json/stream.rb
    56 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/handlers/document_stream.rb
    57 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych.rb
    58 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/psych_additions.rb
    59 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/psych_tree.rb
    60 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb
    61 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/syck_hack.rb
    62 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/rubygems_integration.rb
    63 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/shared_helpers.rb
    64 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/fileutils.rb
    65 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/psyched_yaml.rb
    66 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/gem_helpers.rb
    67 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/match_platform.rb
    68 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/rubygems_ext.rb
    69 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/version.rb
    70 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler.rb
    71 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/digest.bundle
    72 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/digest.rb
    73 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/digest/sha1.bundle
    74 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/environment.rb
    75 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb
    76 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/settings.rb
    77 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/set.rb
    78 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/definition.rb
    79 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/dependency.rb
    80 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/dsl.rb
    81 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri/common.rb
    82 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri/generic.rb
    83 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri/ftp.rb
    84 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri/http.rb
    85 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri/https.rb
    86 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri/ldap.rb
    87 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri/ldaps.rb
    88 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri/mailto.rb
    89 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/uri.rb
    90 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/user_interaction.rb
    91 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/package/f_sync_dir.rb
    92 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_header.rb
    93 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/enc/iso_8859_1.bundle
    94 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/zlib.bundle
    95 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_input.rb
    96 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb
    97 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_reader/entry.rb
    98 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_reader.rb
    99 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb
    100 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/package.rb
    101 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/format.rb
    102 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/ext/builder.rb
    103 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/ext/configure_builder.rb
    104 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/optparse.rb
    105 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/command.rb
    106 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/ext/ext_conf_builder.rb
    107 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/ext/rake_builder.rb
    108 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/ext.rb
    109 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/require_paths_builder.rb
    110 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb
    111 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/remote_fetcher.rb
    112 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/errors.rb
    113 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/text.rb
    114 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/spec_fetcher.rb
    115 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/open3.rb
    116 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/gem_installer.rb
    117 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/source.rb
    118 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/lockfile_parser.rb
    119 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/lazy_specification.rb
    120 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb
    121 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/forwardable.rb
    122 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/spec_set.rb
    123 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/index.rb
    124 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/remote_specification.rb
    125 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/endpoint_specification.rb
    126 /Users/noahs/.bundler/ruby/1.9.1/paperclip-813c8c8feb63/lib/paperclip/version.rb
    127 /Users/noahs/.bundler/ruby/1.9.1/thinking-sphinx-8f0e34b4a684/lib/thinking_sphinx/version.rb
    128 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/dep_proxy.rb
    129 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb
    130 /Users/noahs/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/setup.rb
    131 /Users/noahs/Desktop/deries/config/boot.rb
    132 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/object/inclusion.rb
    133 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/e2mmap.rb
    134 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/init.rb
    135 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/workspace.rb
    136 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/inspector.rb
    137 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/context.rb
    138 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/extend-command.rb
    139 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/output-method.rb
    140 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/notifier.rb
    141 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/slex.rb
    142 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-token.rb
    143 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb
    144 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/src_encoding.rb
    145 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/magic-file.rb
    146 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/readline.bundle
    147 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/input-method.rb
    148 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/locale.rb
    149 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb
    150 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb
    151 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/commands/console.rb
    152 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/ruby_version_check.rb
    153 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/openssl.bundle
    154 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/bn.rb
    155 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/cipher.rb
    156 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/config.rb
    157 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/digest.rb
    158 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/buffering.rb
    159 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/fcntl.bundle
    160 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/ssl-internal.rb
    161 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/x509-internal.rb
    162 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl.rb
    163 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/securerandom.rb
    164 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/inflector/inflections.rb
    165 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/inflector/methods.rb
    166 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/lazy_load_hooks.rb
    167 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies/autoload.rb
    168 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/version.rb
    169 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support.rb
    170 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/kernel/reporting.rb
    171 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/array/extract_options.rb
    172 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/class/attribute_accessors.rb
    173 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/notifications/fanout.rb
    174 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/notifications.rb
    175 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/array/wrap.rb
    176 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/deprecation/behaviors.rb
    177 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/deprecation/reporting.rb
    178 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/deprecation.rb
    179 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/aliasing.rb
    180 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/deprecation/method_wrappers.rb
    181 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/deprecation/proxy_wrappers.rb
    182 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/deprecation.rb
    183 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/thread.rb
    184 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb
    185 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/logger.rb
    186 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/logger.rb
    187 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/hash/reverse_merge.rb
    188 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/initializable.rb
    189 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/ordered_hash.rb
    190 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/ordered_options.rb
    191 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/hash/deep_dup.rb
    192 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/paths.rb
    193 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/rack.rb
    194 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/configuration.rb
    195 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/attribute_accessors.rb
    196 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/multibyte/utils.rb
    197 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/multibyte.rb
    198 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/string/multibyte.rb
    199 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/i18n-0.6.0/lib/i18n/version.rb
    200 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/i18n-0.6.0/lib/i18n/exceptions.rb
    201 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/i18n-0.6.0/lib/i18n/interpolate/ruby.rb
    202 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/i18n-0.6.0/lib/i18n.rb
    203 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/i18n-0.6.0/lib/i18n/config.rb
    204 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/i18n.rb
    205 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/inflector/transliterate.rb
    206 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/inflections.rb
    207 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/string/inflections.rb
    208 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/inflector.rb
    209 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/introspection.rb
    210 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/delegation.rb
    211 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/railtie.rb
    212 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/engine/railties.rb
    213 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/engine.rb
    214 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/time.rb
    215 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/base64.rb
    216 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/base64.rb
    217 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/string/encoding.rb
    218 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/object/blank.rb
    219 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/xml_mini/rexml.rb
    220 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/xml_mini.rb
    221 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/hash/keys.rb
    222 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/array/conversions.rb
    223 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/plugin.rb
    224 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/application.rb
    225 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/version.rb
    226 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/file_update_checker.rb
    227 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/concern.rb
    228 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/railtie/configurable.rb
    229 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/railtie/configuration.rb
    230 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/i18n_railtie.rb
    231 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/railtie.rb
    232 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_pack/version.rb
    233 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_pack.rb
    234 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.6/lib/active_model/version.rb
    235 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.6/lib/active_model.rb
    236 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack.rb
    237 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch.rb
    238 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/railtie.rb
    239 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails.rb
    240 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/crud.rb
    241 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/factory_methods.rb
    242 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/expressions.rb
    243 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/predications.rb
    244 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/math.rb
    245 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/alias_predication.rb
    246 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/order_predications.rb
    247 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/table.rb
    248 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/attributes/attribute.rb
    249 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/attributes.rb
    250 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/compatibility/wheres.rb
    251 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/relation.rb
    252 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/expression.rb
    253 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/visitor.rb
    254 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/depth_first.rb
    255 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/bigdecimal.bundle
    256 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/to_sql.rb
    257 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/sqlite.rb
    258 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/postgresql.rb
    259 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/mysql.rb
    260 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/mssql.rb
    261 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/oracle.rb
    262 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/join_sql.rb
    263 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/where_sql.rb
    264 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/order_clauses.rb
    265 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/dot.rb
    266 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/ibm_db.rb
    267 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors/informix.rb
    268 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/visitors.rb
    269 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/tree_manager.rb
    270 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/insert_manager.rb
    271 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/select_manager.rb
    272 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/update_manager.rb
    273 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/delete_manager.rb
    274 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/node.rb
    275 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/select_statement.rb
    276 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/select_core.rb
    277 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/insert_statement.rb
    278 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/update_statement.rb
    279 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/terminal.rb
    280 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/true.rb
    281 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/false.rb
    282 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/unary.rb
    283 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/ascending.rb
    284 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/descending.rb
    285 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/unqualified_column.rb
    286 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/with.rb
    287 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/binary.rb
    288 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/equality.rb
    289 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/in.rb
    290 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/join_source.rb
    291 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/delete_statement.rb
    292 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/table_alias.rb
    293 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/infix_operation.rb
    294 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/and.rb
    295 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/function.rb
    296 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/count.rb
    297 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/values.rb
    298 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/named_function.rb
    299 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/inner_join.rb
    300 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/outer_join.rb
    301 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/string_join.rb
    302 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes/sql_literal.rb
    303 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/nodes.rb
    304 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/deprecated.rb
    305 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/sql/engine.rb
    306 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel/sql_literal.rb
    307 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/arel-3.0.2/lib/arel.rb
    308 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/version.rb
    309 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/enumerable.rb
    310 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/kernel/singleton_class.rb
    311 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/remove_method.rb
    312 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/class/attribute.rb
    313 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.6/lib/active_model/attribute_methods.rb
    314 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/attribute_methods.rb
    315 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/bigdecimal/util.rb
    316 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/benchmark.rb
    317 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/benchmark.rb
    318 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/connection_adapters/schema_cache.rb
    319 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/big_decimal/conversions.rb
    320 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract/quoting.rb
    321 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb
    322 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract/schema_statements.rb
    323 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract/database_limits.rb
    324 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract/query_cache.rb
    325 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/descendants_tracker.rb
    326 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/callbacks.rb
    327 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract_adapter.rb
    328 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/scoping.rb
    329 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record.rb
    330 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.6/lib/active_model/railtie.rb
    331 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/basic_object.rb
    332 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/object/acts_like.rb
    333 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/duration.rb
    334 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/time/publicize_conversion_methods.rb
    335 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/object/try.rb
    336 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/values/time_zone.rb
    337 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/time/conversions.rb
    338 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/time/calculations.rb
    339 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/time_with_zone.rb
    340 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/time/zones.rb
    341 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/date/zones.rb
    342 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/date/calculations.rb
    343 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/date_time/calculations.rb
    344 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/date_time/conversions.rb
    345 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/process/daemon.rb
    346 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/string/conversions.rb
    347 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/i18n-0.6.0/lib/i18n/core_ext/string/interpolate.rb
    348 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/string/interpolation.rb
    349 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/rexml/rexml.rb
    350 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/rexml.rb
    351 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/file/path.rb
    352 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/method_names.rb
    353 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/ruby/shim.rb
    354 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/attr_internal.rb
    355 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/anonymous.rb
    356 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/abstract_controller.rb
    357 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/erb.rb
    358 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/enc/trans/single_byte.bundle
    359 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/enc/trans/escape.bundle
    360 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/string/output_safety.rb
    361 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_view.rb
    362 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_controller/vendor/html-scanner.rb
    363 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/load_error.rb
    364 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/name_error.rb
    365 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/uri.rb
    366 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_controller.rb
    367 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_view/railtie.rb
    368 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/abstract_controller/railties/routes_helpers.rb
    369 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_controller/railties/paths.rb
    370 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_controller/railtie.rb
    371 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/railtie.rb
    372 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionmailer-3.2.6/lib/action_mailer/version.rb
    373 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/class/delegating_attributes.rb
    374 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/reachable.rb
    375 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/class/subclasses.rb
    376 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/class.rb
    377 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/array/uniq_by.rb
    378 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionmailer-3.2.6/lib/action_mailer.rb
    379 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionmailer-3.2.6/lib/action_mailer/railtie.rb
    380 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activeresource-3.2.6/lib/active_resource/exceptions.rb
    381 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activeresource-3.2.6/lib/active_resource/version.rb
    382 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activeresource-3.2.6/lib/active_resource.rb
    383 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activeresource-3.2.6/lib/active_resource/railtie.rb
    384 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/test_unit/railtie.rb
    385 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/sprockets/railtie.rb
    386 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/all.rb
    387 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/string_inquirer.rb
    388 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/lib/mysql2/version.rb
    389 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/lib/mysql2/error.rb
    390 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/lib/mysql2/result.rb
    391 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
    392 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/lib/mysql2/client.rb
    393 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/lib/mysql2.rb
    394 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/time/acts_like.rb
    395 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/numeric/time.rb
    396 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/module/qualified_const.rb
    397 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/string/starts_ends_with.rb
    398 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb
    399 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/orm_adapter-0.4.0/lib/orm_adapter/base.rb
    400 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/orm_adapter-0.4.0/lib/orm_adapter/to_adapter.rb
    401 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/orm_adapter-0.4.0/lib/orm_adapter/version.rb
    402 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/orm_adapter-0.4.0/lib/orm_adapter/adapters/active_record.rb
    403 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/orm_adapter-0.4.0/lib/orm_adapter.rb
    404 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/controllers/helpers.rb
    405 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/mixins/common.rb
    406 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/proxy.rb
    407 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/hooks.rb
    408 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/config.rb
    409 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/manager.rb
    410 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/errors.rb
    411 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/session_serializer.rb
    412 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/strategies.rb
    413 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden/strategies/base.rb
    414 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/warden-1.2.1/lib/warden.rb
    415 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/mapping.rb
    416 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/hooks/activatable.rb
    417 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/models/authenticatable.rb
    418 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/models.rb
    419 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/hash/deep_merge.rb
    420 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/option_merger.rb
    421 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/object/with_options.rb
    422 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/lib/devise/modules.rb
    423 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/hash/slice.rb
    424 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/object/to_param.rb
    425 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/regexp.rb
    426 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/routing/polymorphic_routes.rb
    427 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/routing.rb
    428 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/core-ext/hash.rb
    429 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/router/utils.rb
    430 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/router/strexp.rb
    431 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/routes.rb
    432 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/formatter.rb
    433 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/racc/cparse.bundle
    434 /Users/noahs/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/racc/parser.rb
    435 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/scanner.rb
    436 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/visitors.rb
    437 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/nodes/node.rb
    438 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/parser_extras.rb
    439 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/parser.rb
    440 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/route.rb
    441 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/path/pattern.rb
    442 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/router.rb
    443 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/nfa/dot.rb
    444 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/gtg/transition_table.rb
    445 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/gtg/builder.rb
    446 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/gtg/simulator.rb
    447 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/nfa/transition_table.rb
    448 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/nfa/builder.rb
    449 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey/nfa/simulator.rb
    450 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/journey-1.0.4/lib/journey.rb
    451 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/object/to_query.rb
    452 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_controller/metal/exceptions.rb
    453 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.6/lib/action_dispatch/routing/route_set.rb
    454 /Users/noahs/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/hash/except.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap: 6

This error is repeatable. Can you please provide some solution?

Thanks

Delayed_Job dies without error while running as Deamons on Ubuntu 12.04

running: /bin/delayed_job status

gives: pid-file for killed process 1143 found (/appPath/tmp/pids/delayed_job.pid),
deleting. delayed_job: no instances running

The strange thing is if I use: /bin/delayed_job start It will run perfectly in the foreground! And never dies.

How to debug this?. Is this segfaults?

Using:
rails (4.1.0)
delayed_job_active_record(4.0.1)

jobs closed unexpectedly - data too long for text column

When job fail because of data too long in mysql request, the job process is also finished...

Example :

class Example
  def self.test
    i = 'i'
    100000.times do
      i+= 'i'
    end
    MyModel.create(my_text_column: i)
  end
end

Example.delay.test
rake jobs:work

Migration is not generated

I've added delayed_job_active_record gem to my Gemfile, ran rails g delayed_job , it created DJ bin file, made it executable but doesn't create migration. Had to do this manualy.

Ruby 1.9.2, Rails 3.1.1, latest DJ

max_run_time = 0 means something different to Delayed::Worker than it does to Delayed::Backend::ActiveRecord:: Job.ready_to_run

Setting the Delayed::Worker.max_run_time to zero indicates that the Worker should not time out long running jobs. That is because it uses the Timeout library for managing timeout logic, and that is what zero means to that library.

However, the ready_to_run query doesn't special case that value, so it will end up selecting basically any job as "ready to run", because the conditional "OR locked_at < ?" (where ? = db_time_now - max_run_time) will almost always be true.

Make test suite independent of delayed_job test suite

Hello,

I am packaging your gem for Fedora. I was trying to execute the test suite while I was facing this error:

/usr/share/rubygems/rubygems/custom_require.rb:36:in `require': cannot load such file -- /usr/share/gems/gems/delayed_job-3.0.2/spec/sample_jobs (LoadError)

The reason for this error is that we typically don't install test suite with the main package, since it is not needed by regular user, and we install it just as a part of documentation subpackage. So if I add the dependency just on the gem (without documentation, as I always do), I am facing this error.

Now I am wondering, if you would consider to split the test suite. I have never seen before test suite which depends on another gem's test suite. This is not a show stopper, of course I can depend on the documentation subpackage and test suite passes.

I understand, that this is rather academic problem. However, I'd love to know your opinion. Thank you.

Failed jobs not correctly unlocked first time through

When I tried to upgrade rails to version 3.2.2 (from version 3.1.3), I notice that when a job failed it was run a second time right away.

The cause of this problem is that the job is not being unlocked correctly. I found an old issue that had the same problem here: collectiveidea/delayed_job#63.

What I found is that when first locking the job, only the locks on the database are changed, not those of the object itself, so when the job is unlocked, the locked_by and locked_at attributes are not correctly updated.

I managed to work around the issue by calling self.reload instead of :

self.locked_at = now
self.locked_by = worker
self.locked_at_will_change!
self.locked_by_will_change!

This fix may cause a performance issue, and there is probably a better/cleaner way to solve this.

using :
rails version 3.2.2
delayed_job version 3.0.1
delayed_job_active_record version 0.3.2
using SQLite3 (gem 1.3.5)

Update the README

Can you please update the README with explanation that 4.0.0 version is actually compatible with Rails 3 and Delayed Job 3 versions as well.

I updated an old version of the gem and got from 0.3.5 to 4.0.0 and it's wasn't obvious for me if I can run it or not.

Thanks

Can't start delayed_job with a named Queue in 0.4.4

Steps to reproduce:
script/delayed_job -i 0 --queue=Stitch run
or
Delayed::Backend::ActiveRecord::Job.where(:queue => ["Stitch"])
Gets me a :
NoMethodError: undefined method abstract_class?' for Object:Class`

I managed to track it down in file active_record.rb#L50
ready_scope = ready_scope.where(:queue => Worker.queues) if Worker.queues.any?

It seems that AR somehow chokes on a where clause with an Array input. Also it works fine in 0.4.3 since it 's using an IN clause instead.

Gem Versions:

  • delayed_job (3.0.5)
  • delayed_job_active_record (0.4.4)

Upgrade to 0.4.0 breaks daemon

I just upgraded to the newer version and had to revert back to the old one. When daemonizing the delayed_job, it will not load the daemon.

#!/usr/bin/env ruby

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
ARGV << "--pid-dir=#{Rails.root}/pids"
Delayed::Command.new(ARGV).daemonize

When running Rails 4 with Rails 3 mass-assignment compatibility gem, DJ fails with mass-assignment error

Rails 4 lets you include a gem called 'protected_attributes' which turns on Rails 3-style mass-assignment protection. This provides an easier migration path for people moving to Rails 4 and will probably be pretty commonly used as a stop-gap solution by some Rails projects.

Using this Gem with DJ on Rails 4 causes DJ to fail because the payload_object is never mass-assigned. When you attempt to create a delayed job, you'll get this warning:

WARNING: Can't mass-assign protected attributes for Delayed::Backend::ActiveRecord::Job: priority, queue, payload_object

Then, in your worker process you'll get this error:
undefined method `[]' for nil:NilClass

This is because payload_object is nil and can't be deserialized.

Probably the way to fix this is in lib/delayed/backend/active_record.rb, change this code to look for the inclusion of the 'protected_attributes' gem instead of or in addition to the version number of ActiveRecord:

        if ::ActiveRecord::VERSION::MAJOR < 4
          attr_accessible :priority, :run_at, :queue, :payload_object,
                          :failed_at, :locked_at, :locked_by
        end

Time object millisecond precision for mysql(>5.6.4) version

ActiveSupport::TimeZone object for rails 4.2 beta version is returning millisecond precision, detailed mention here in this rails issue. Due to this delayed job queue is not executed when it's not empty.

when "MySQL", "Mysql2"
 count = ready_scope.limit(1).update_all(locked_at: now, locked_by: worker.name)
 return nil if count == 0
 where(locked_at: now, locked_by: worker.name, failed_at: nil).first

so the locked_at time is being set with
UPDATE delayed_jobs SET delayed_jobs.locked_at = '2014-10-21 05:14:39.499297'
as mentioned in the rails issue above.
The locked_at column generated by the delayed_job active record migration doesn't have ability to store the precision. So the precision is discarded and stored. But running the where clause here

 where(locked_at: now, locked_by: worker.name, failed_at: nil).first

The precision is not discarded for mysql versions(>= 5.6.4), so the where clause is queried with precision which doesn't result any results, which makes delayed job think there are no records to run.

So for the delayed job to work, i made this change in my pull request

       when "MySQL", "Mysql2"
        #removing the millisecond precision from now(time object),mysql 5.6.4 onwards millisecond precision exists, but the datetime object created doesn't have precision, so discarded while updating. But during the where clause, for mysql(>=5.6.4), it queries with precision as well. So removing the precision.

        now = now.change(:usec => 0)
        ##### This works on MySQL and possibly some other DBs that support UPDATE...LIMIT. It uses separate queries to lock and return the job
        count = ready_scope.limit(1).update_all(locked_at: now, locked_by: worker.name)
        return nil if count == 0
        where(locked_at: now, locked_by: worker.name, failed_at: nil).first

Test fails

Hi, I observe following test failure:

$ sed -i -e 's|require '\''bundler/setup'\''||' spec/spec_helper.rb
$ rspec spec
DEPRECATION WARNING: Calling set_primary_key is deprecated. Please use `self.primary_key = 'the_name'` instead. (called from <class:Story> at /builddir/build/BUILD/rubygem-delayed_job_active_record-0.3.3/usr/share/gems/gems/delayed_job_active_record-0.3.3/spec/spec_helper.rb:43)
..........................................................F....................
Failures:
  1) Delayed::Backend::ActiveRecord::Job it should behave like a delayed_job backend worker integration failed jobs should re-schedule jobs after failing
     Failure/Error: @job.attempts.should == 1
       expected: 1
            got: 2 (using ==)
     Shared Example Group: "a delayed_job backend" called from ./spec/delayed/backend/active_record_spec.rb:9
     # /usr/share/gems/gems/rspec-expectations-2.11.3/lib/rspec/expectations/fail_with.rb:33:in `fail_with'
     # /usr/share/gems/gems/rspec-expectations-2.11.3/lib/rspec/matchers/operator_matcher.rb:47:in `fail_with_message'
     # /usr/share/gems/gems/rspec-expectations-2.11.3/lib/rspec/matchers/operator_matcher.rb:69:in `__delegate_operator'
     # /usr/share/gems/gems/rspec-expectations-2.11.3/lib/rspec/matchers/operator_matcher.rb:59:in `eval_match'
     # /usr/share/gems/gems/rspec-expectations-2.11.3/lib/rspec/matchers/operator_matcher.rb:28:in `block in use_custom_matcher_or_delegate'
     # /usr/share/gems/gems/delayed_job-3.0.2/lib/delayed/backend/shared_spec.rb:491:in `block (4 levels) in <top (required)>'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:113:in `instance_eval'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:113:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:253:in `with_around_each_hooks'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:110:in `run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:378:in `block in run_examples'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:374:in `map'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:374:in `run_examples'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:360:in `run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `map'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `map'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `map'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in `map'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/reporter.rb:34:in `report'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:25:in `run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run'
     # /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `block in autorun'
Finished in 1.93 seconds
79 examples, 1 failure
Failed examples:
rspec /usr/share/gems/gems/delayed_job-3.0.2/lib/delayed/backend/shared_spec.rb:486 # Delayed::Backend::ActiveRecord::Job it should behave like a delayed_job backend worker integration failed jobs should re-schedule jobs after failing

These are the gems I am using for testing:

$ gem list

*** LOCAL GEMS ***

activemodel (3.2.8)
activerecord (3.2.8)
activesupport (3.2.8)
arel (3.0.2)
bigdecimal (1.1.0)
builder (3.1.4)
delayed_job (3.0.2)
diff-lcs (1.1.3)
i18n (0.6.0)
io-console (0.3)
json (1.6.5)
multi_json (1.3.6)
rake (0.9.2.2)
rdoc (3.12)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.3)
rspec-mocks (2.11.3)
sqlite3 (1.3.5)
tzinfo (0.3.30)

Where is the find_available method defined?

Hi,

I'm trying to understand how available jobs are selected to be processed and I stumbled upon the following code in base.rb from the delayed_job repositery:

def reserve(worker, max_run_time = Worker.max_run_time)
  # We get up to 5 jobs from the db. In case we cannot get exclusive access to a job we try the next.
  # this leads to a more even distribution of jobs across the worker processes
  find_available(worker.name, worker.read_ahead, max_run_time).detect do |job|
    job.lock_exclusively!(max_run_time, worker.name)
  end
end

I can't find where the find_available method is defined. Does not seem to be in the from the delayed_job gem but I can't find it here either. Any idea where I can find the method definition?

Locking no longer functions correctly

I upgraded from v0.4.1 to v0.4.3 and found that the job locking no longer functions correctly (using Rails 3.2.12 and Postgresql 9.1).

I have certain jobs setup to requeue themselves upon completion. Multiple workers pick up the same job, run it, and queue the same job multiple times, resulting in one job becoming 2-3 jobs. They in turn get picked up and run and create more.

As it stand, I have about 7 jobs queued when only 1 should be there. It worked great with 0.4.1 and the issue seems to have been introduced in these commits:

b015618
0cb4496

For now, I have rolled back to v0.4.1 and the bug has gone away.

Blowing up on Rails 3.2.6 with SystemStackError

Been poking at this for hours now. Job enqueuing via the "delay" method is resulting in my app blowing up with a SystemStackError when running on a local server (both WebBrick and Thin tested) with the debugger attached. I'm running Rails 3.2.6 on both Ruby 1.9.2 and 1.9.3 and delayed_job_active_record v 0.3.2. Oddly, if I invoke the very same methods that are blowing up in the app from the Rails interactive console instead or even from the app running on the development server WITHOUT debugging enabled, they work fine. the delayed_job log isn't giving me any help.

The particular invocation I'm testing is:

OrderMailer.delay.send_order_confirmation_email(@order)

(OrderMailer.send_order_confirmation_email does just what it sounds like it does)

Again, this works fine if invoked from the interactive console but not from the app. The stack trace I'm seeing (though I doubt it's helpful) is:

SystemStackError (stack level too deep):
activesupport (3.2.6) lib/active_support/callbacks.rb:409

Rendered /Users/[me]/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.1ms)
Rendered /Users/[me]/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (2.2ms)
Rendered /Users/[me]/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (20.1ms)

...which I take is the framework killing the handling of the request because the stack level has surpassed a threshold, so likely not so helpful in actually diagnosing the issue. Will answer any other questions if it will help. Thanks.

Generators broken with Rails 4?

When I try to run the generators on a vanilla rails 4 app, I get the following error

alainmeier$ rails generate delayed_job:active_record
/Users/alainmeier/.rvm/gems/ruby-2.0.0-p0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require': cannot load such file -- rails/generators/active_record/migration (LoadError)

rake db:migrate fails with postgres

This is on Rails 3.2 q/ Postgres.

If I copy/paste the offending SQL query into PSQL it runs without issue.

rake db:migrate --trace
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:migrate
==  CreateDelayedJobs: migrating ==============================================
-- create_table(:delayed_jobs, {:force=>true})
rake aborted!
An error has occurred, this and all later migrations canceled:

PG::Error: ERROR:  current transaction is aborted, commands ignored until end of transaction block
: CREATE TABLE delayed_jobs ("id" serial primary key, "priority" integer DEFAULT 0, "attempts" integer DEFAULT 0, "handler" text, "last_error" text, "run_at" timestamp, "locked_at" timestamp, "failed_at" timestamp, "locked_by" character varying(255), "queue" character varying(255), "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:640:in `async_exec'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:640:in `block in execute'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activesupport-3.2.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:639:in `execute'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/bundler/gems/postgis_adapter-a1b5f0a55c43/lib/postgis_adapter.rb:179:in `create_table'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:450:in `block in method_missing'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:424:in `block in say_with_time'
/Users/jake/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:295:in `measure'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:424:in `say_with_time'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:444:in `method_missing'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:334:in `method_missing'
/Users/jake/Code/test/db/migrate/20120314013610_create_delayed_jobs.rb:3:in `up'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:358:in `up'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:396:in `block (2 levels) in migrate'
/Users/jake/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:295:in `measure'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:396:in `block in migrate'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:118:in `with_connection'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:377:in `migrate'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:512:in `migrate'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:704:in `block (2 levels) in migrate'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:759:in `call'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:759:in `block in ddl_transaction'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:190:in `transaction'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/transactions.rb:208:in `transaction'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:759:in `ddl_transaction'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:703:in `block in migrate'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:684:in `each'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:684:in `migrate'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:554:in `up'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/migration.rb:535:in `migrate'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/activerecord-3.2.1/lib/active_record/railties/databases.rake:153:in `block (2 levels) in <top (required)>'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/Users/jake/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/bin/rake:19:in `load'
/Users/jake/.rvm/gems/ruby-1.9.2-p290@test/bin/rake:19:in `<main>'
Tasks: TOP => db:migrate

Stub request of external service in job class

Hello Everybody, I write a rspec of observer class that call Delayed::Job.enqueue and in the job class has method to use twitter api service then I want to stub request it.

How do I do this?

Thanks in advance.

Deprecation warning generated on Rails 3.2rc2

The following deprecation warning is being generated when used with Rails 3.2rc2

DEPRECATION WARNING: Calling set_table_name is deprecated. Please use `self.table_name = 'the_name'` instead. (called from <top (required)> at <snip>

Doesn't work with DJ3 final

Still looking for pre

Bundler could not find compatible versions for gem "delayed_job":
  In Gemfile:
    delayed_job_active_record depends on
      delayed_job (= 3.0.0.pre)

Rails (activerecord) 4.1 compability

When trying to upgrade to rails 4.1 I get the following message:

Bundler could not find compatible versions for gem "activerecord":
  In Gemfile:
    delayed_job_active_record (>= 0) ruby depends on
      activerecord (< 4.1, >= 3.0) ruby

    rails (~> 4.1) ruby depends on
      activerecord (4.1.0)

ActiveRecord::StatementInvalid (Could not find table 'delayed_jobs')

Hey guys,

When some application set AR configurations below:

active_record.table_name_prefix = "my_app_"
active_record.table_name_suffix = ""

and run migrations, AR creates a table with name "my_app_delayed_jobs"

Then DJ AR Backend try to query with name "delayed_jobs" and you get the Error:
ActiveRecord::StatementInvalid (Could not find table 'delayed_jobs'):
or
ActiveRecord::JdbcError (query does not return ResultSet):
If application using activerecord-jdbc-adapter

Is it possible to set DJ table name with AR prefix and suffix configs?
something like this:

self.table_name = "#{::ActiveRecord::Base.table_name_prefix}delayed_jobs#{::ActiveRecord::Base.table_name_suffix}"

Using

  • delayed_job (3.0.1)
  • delayed_job_active_record (0.3.2)
  • rails (3.1.3)
  • activerecord (3.1.3)

Mysql2::Error: Deadlock when attempting to lock a job

We've just upgraded from 0.3.3 to 0.4.4, to resolve the race condition problem when running multiple workers. We're now seeing occasional MySQL deadlocks, which are unhandled exceptions and end up killing the worker.

For example:

svc1 Jun  5 12:35:17  Mysql2::Error: Deadlock found when trying to get lock; try restarting transaction: UPDATE `delayed_jobs` SET `locked_at` = '2013-06-05 12:35:16', `locked_by` = 'delayed_job.2 host:svc1 pid:20498' WHERE `delayed_jobs`.`queue` IN ('batch') AND ((run_at <= '2013-06-05 12:35:16' AND (locked_at IS NULL OR locked_at < '2013-06-05 08:35:16') OR locked_by = 'delayed_job.2 host:svc1 pid:20498') AND failed_at IS NULL) ORDER BY priority ASC, run_at ASC LIMIT 1

It would seem that, at the very least, this should be handled.

In case it matters, we're using delayed_job 3.0.4.

Does not work with PostgreSQL 8.4

Although #32 fixed issues with PostgreSQL it still does not work with PostgreSQL 8.4, which for example ships with RHEL 6.

Error:

$ rake jobs:work --trace
[Worker(host:foo.localdomain pid:8232)] Starting job worker
rake aborted!
PG::Error: ERROR: SELECT FOR UPDATE/SHARE is not allowed in subqueries
: UPDATE "delayed_jobs" SET locked_at = '2013-02-18 09:58:32.257303', locked_by = 'host:foo.localdomain pid:8232' WHERE id IN (SELECT id FROM "delayed_jobs" WHERE ((run_at <= '2013-02-18 09:58:32.207834' AND (locked_at IS NULL OR locked_at < '2013-02-18 07:58:32.207910') OR locked_by = 'host:foo.localdomain pid:8232') AND failed_at IS NULL) ORDER BY priority ASC, run_at ASC LIMIT 1 FOR UPDATE) RETURNING *
/home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1153:in async_exec' /home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1153:inexec_no_cache'
/home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:662:in exec_query' /home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract_adapter.rb:280:inlog'
/home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activesupport-3.2.12/lib/active_support/notifications/instrumenter.rb:20:in instrument' /home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract_adapter.rb:275:inlog'
/home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:661:in exec_query' /home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1248:inselect'
/home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/database_statements.rb:18:in select_all' /home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/query_cache.rb:63:inselect_all'
/home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/querying.rb:38:in find_by_sql' /home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/explain.rb:33:inlogging_query_plan'
/home/duritong/.rvm/gems/ree-1.8.7-2012.02@enclouder/gems/activerecord-3.2.12/lib/active_record/querying.rb:37:in `find_by_sql'

I could not find any requirements regarding PostgreSQL Version. It would be good if you would support the latest database version on the latest major enterprise linux distribution.

Support for Rails 4.1

I'm eager to play around with Rails 4.1 on my app, but I notice that DJ doesn't officially support it yet. The release notes suggest that there should be little broken compatibility, which should (hopefully!) make supporting 4.1 fairly painless. Looking forward to checking out DJ in 4.1.

Mysql error when starting delayed job in production

when stating delayed job in my production environment on a vps platform, the following errors occur

/home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in connect': Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) (Mysql2::Error) from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:ininitialize'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in new' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/mysql2_adapter.rb:16:inmysql2_connection'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in new_connection' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:325:incheckout_new_connection'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:247:in block (2 levels) in checkout' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:inloop'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in block in checkout' from /home/deployer/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:inmon_synchronize'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:239:in checkout' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:102:inblock in connection'
from /home/deployer/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:101:inconnection'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in retrieve_connection' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:171:inretrieve_connection'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:145:in connection' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/model_schema.rb:308:inclear_cache!'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/railtie.rb:97:in block (2 levels) in <class:Railtie>' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:418:in_run__918681977__prepare__203223673__callbacks'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:405:in __run_callback' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:385:in_run_prepare_callbacks'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:81:in run_callbacks' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/reloader.rb:74:inprepare!'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/reloader.rb:48:in prepare!' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application/finisher.rb:47:inblock in module:Finisher'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:30:in instance_exec' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:30:inrun'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:55:in block in run_initializers' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:54:ineach'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:54:in run_initializers' from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:136:ininitialize!'
from /home/deployer/apps/gutrees/shared/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/railtie/configurable.rb:30:in method_missing' from /home/deployer/apps/gutrees/releases/20121120075205/config/environment.rb:5:in<top (required)>'
from /home/deployer/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /home/deployer/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'
from script/delayed_job:3:in `

'

ActiveRecord / oracle-enhanced-adapter includes mystery column "JOB_ID" in enqueue insert

Rails 3.2.13, Ruby 1.9.3
Using 4.0.0 delayed_job / delayed_job_active_record

Enqueue seems to be trying to send a job_id to the insert, but I can't figure out where this column is coming from. Job_id doesn't exist in the delayed_jobs table obviously...assuming it is related to my use of oracle-enhanced which I'm not sure is supported.

Note the JOB_ID column in the insert, with a value pair of [nil,27], where 27 is the delayed_job table sequence nextval. Looks like somehow the delayed_job_id column is getting crossed up and this job_id is getting added.

In console:

INSERT INTO "DELAYED_JOBS" ("ATTEMPTS", "CREATED_AT", "DELAYED_JOB_ID", "FAILED_AT", "HANDLER", "JOB_ID", "LAST_ERROR", "LOCKED_AT", "LOCKED_BY", "PRIORITY", "QUEUE", "RUN_AT", "UPDATED_AT") VALUES (:a1, :a2, :a3, :a4, :a5, :a6, :a7, :a8, :a9, :a10, :a11, :a12, :a13) [["attempts", 0], ["created_at", Fri, 16 Aug 2013 18:58:37 UTC +00:00], ["delayed_job_id", nil], ["failed_at", nil], ["handler", "---!ruby/object:Delayed::PerformableMethod\nobject: !ruby/object:QueueProcessor {}\nmethod_name: :perform\nargs: []\n"], [nil, 27], ["last_error", nil], ["locked_at", nil], ["locked_by", nil], ["priority", 0], ["queue", nil], ["run_at", Fri, 16 Aug 2013 18:58:37 UTC +00:00], ["updated_at",Fri, 16 Aug 2013 18:58:37 UTC +00:00]]
NoMethodError: undefined method `returning_id?' for nil:NilClass: INSERT INTO "DELAYED_JOBS" ("ATTEMPTS", "CREATED_AT", "DELAYED_JOB_ID", "FAILED_AT", "HANDLER", "JOB_ID", "LAST_ERROR", "LOCKED_AT", "LOCKED_BY", "PRIORITY", "QUEUE", "RUN_AT", "UPDATED_AT") VALUES (:a1, :a2, :a3, :a4, :a5, :a6, :a7, :a8, :a9, :a10, :a11, :a12, :a13)

Any help appreciated...I'd prefer not to write my own if I can make delayed_jobs work!

Delayed::DeserializationError: Job failed to load: undefined method `engine' for nil:NilClass.

Not sure if this is a bug with delayed_job_active_record but I just wanted to run it with others who may be getting this issue.

I have a UserMailer class which accepts a user and a collection of products and I perform this method with delayed jobs like below.

  UserMailer.delay.send_products_update_notification(user, my_products)

For some weird reason when my_products is an ActiveRecord::Relation::ActiveRecord_Relation_Product by doing my_products.class I receive the following error when my job is being run.

  Delayed::DeserializationError: Job failed to load: undefined method `engine' for nil:NilClass.

But as soon as I change my mailer by converting my_products to an array my task works.

   UserMailer.delay.send_products_update_notification(user, my_products.to_a)

Not sure if I am doing something wrong here of that it's a known issue with the gem. If anyone has any insight as to why this could be happening, that would be helpful. Thanks.

Locking raises errors when replicated over MySQL slaves

We're getting loads of things like this in our MySQL master/slave setup:

130731 13:14:46 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE `delayed_jobs` SET `locked_at` = '2013-07-31 13:14:46', `locked_by` = 'host:server-1 pid:14412' WHERE ((run_at <= '2013-07-31 13:14:46' AND (locked_at IS NULL OR locked_at < '2013-07-31 09:14:46') OR locked_by = 'host:server-1 pid:14412') AND failed_at IS NULL) ORDER BY priority ASC, run_at ASC LIMIT 1

which appears to be the same error as raised in collectiveidea/delayed_job#219. We're using 0.4.4 but the same code appears in the latest version.

Major version bump

The delayed_job project, from which this codebase is derived, dates back to 2009. This particular gem was released in 2011 and has thousands of users running it in production.

Quoting from the Semantic Versioning FAQ:

If your software is being used in production, it should probably already be 1.0.0. If you have a stable API on which users have come to depend, you should be 1.0.0. If you're worrying a lot about backwards compatibility, you should probably already be 1.0.0.

By this definition, this library should already be 1.0.0.

I have experimented with releasing 4.0.0.beta versions of this gem, to bring the versioning in line with delayed_job and rails both of which are in 4.0.0.beta. That said, I'm not set on making the big jump to 4.0.0, especially if we're planning to maintain compatibility with earlier versions of delayed_job and rails, as we seem to have been able to achieve with #49.

Is there any compelling reason to ship another patch (0.4.5) or minor (0.5.0) version before making the jump to 1.0.0 or 4.0.0?

My only hesitation is to wait until delayed_job and rails release 4.0.0 versions, to ensure we are compatible with the final releases, not just the betas.

MySQL Locking subject to race conditions

the ActiveRecord backend is subject to race conditions if you're running worker processes on different machines.

Because the MySQL path does not use SELECT FOR UPDATE but a manual multi-query lock process we're seeing that each machine running delayed job runs the same job.

The POSTGRES path seems more appropriate for MySQL with innodb as this should lock the row in the database properly.

Any one got any advice on how we can patch this adapater (and send a pull) to resolve this?

performance regression from 0.4.3 to 0.4.4

I upgraded to 0.4.4 and deployed only to find that time between jobs went from < 1s to > 20s. That is a huge swing. I've reverted but thought others should know. This is on a mysql 5.1 server.

reschedule_at not working correctly

Im having problems with reschedule_at working properly. My worker will always make two attempts in quick succession upon failure no matter what I set reschedule_at to. I've done some research and it it looks like there's an issue with locked_by being set when it shouldn't. Either that or the logic in ready_to_run should include some extra parenthesis so that locked_by doesnt override run_at being > db_time_now.

Here's an example, where I included some debugging lines

in worker.rb:

def reschedule(job, time = nil)
  if (job.attempts += 1) < max_attempts(job)
    puts "Rescheduling"
    time ||= job.reschedule_at
    job.run_at = time
    puts "just set run at to #{time}"
    puts "locket_at: #{job.locked_at}"
    puts "locket_by: #{job.locked_by}"
    job.unlock
    puts 'just unlocked'
    job.save!
    puts 'just saved'
    puts "locket_at: #{job.locked_at}"
    puts "locket_by: #{job.locked_by}"
  else
    say "PERMANENTLY removing #{job.name} because of #{job.attempts} consecutive failures.", Logger::INFO
    failed(job)
  end
end

in active_record.rb:

def self.ready_to_run(worker_name, max_run_time)
  puts "Ready to run"
  puts "db_time_now: #{db_time_now}"
  puts "run_at: #{where('(run_at <= ? AND (locked_at IS NULL OR locked_at < ?) OR locked_by = ?) AND failed_at IS NULL', db_time_now, db_time_now - max_run_time, worker_name).first.run_at rescue nil}"
  puts "locked_at: #{where('(run_at <= ? AND (locked_at IS NULL OR locked_at < ?) OR locked_by = ?) AND failed_at IS NULL', db_time_now, db_time_now - max_run_time, worker_name).first.locked_at rescue nil}"
  puts "locked_by: #{where('(run_at <= ? AND (locked_at IS NULL OR locked_at < ?) OR locked_by = ?) AND failed_at IS NULL', db_time_now, db_time_now - max_run_time, worker_name).first.locked_by rescue nil}"
  where('(run_at <= ? AND (locked_at IS NULL OR locked_at < ?) OR locked_by = ?) AND failed_at IS NULL', db_time_now, db_time_now - max_run_time, worker_name)
end

When I run a single delayed job that intentionally raises an exception, I get output that looks like this:

Ready to run
db_time_now: 2013-02-22 11:55:10 -0500
run_at: 2013-02-22 11:54:58 -0500
locked_at:
locked_by:

(job fails so it reschedules...)

Rescheduling
just set run at to 2013-02-22 11:58:20 -0500
locket_at: 2013-02-22 11:55:10 -0500
locket_by: host:Matts-iMac.local pid:32904
just unlocked
just saved
locket_at:
locket_by:

Ready to run
db_time_now: 2013-02-22 11:55:12 -0500
run_at: 2013-02-22 11:58:20 -0500
locked_at:
locked_by: host:Matts-iMac.local pid:32904

(hmmm.. why is locked_at nil but locked_by isn't. Also run_at is > db_time_now so this shouldnt have ran, but it did)

(job fails again...)
Rescheduling
just set run at to 2013-02-22 12:32:39 -0500
locket_at: 2013-02-22 11:55:12 -0500
locket_by: host:Matts-iMac.local pid:32904
just unlocked
just saved
locket_at:
locket_by:

Ready to run
db_time_now: 2013-02-22 11:55:12 -0500
run_at:
locked_at:
locked_by:

(weird.. after a second call to reschedule_at, locked_by is now nil like it probably should be and ready_to_run doesn't find any jobs)

So I'm not sure why locked_by isn't nil, maybe its on purpose, maybe not, but according to the logic in ready_to_run, if locked_by = worker_name, it will override run_at <= db_time_now like so:

where('(run_at <= ? AND (locked_at IS NULL OR locked_at < ?) OR locked_by = ?) AND failed_at IS NULL', db_time_now, db_time_now - max_run_time, worker_name)

in another form could be:

(A && (B || C) || D) && E

Since D is chained on the end like that a true value will override A && (B || C)

So is locked_by being set incorrectly, or should the logic be more like (A && ((B || C) || D)) && E ??

Redis::InheritedError

When using Unicorn (or any other forking server) I receive this error from delayed_job:
Redis::InheritedError: Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking.

It doesn't seem to break anything, but errors make me sad. So, I'm thinking this method needs away for folks to hook into to be able to call Rails.cache.reconnect and make the errors go away.

I'm happy to open a PR, but perhaps you could advise me on how to structure this hook in a way that would make you happy?

Worker crashes when having followers (read-only) postgres slaves after merging: 5de3205f13c55b7911fbbfc528ec499204cbf161

The change introduced new query:

self.find_by_sql(["UPDATE #{quotedTableName} SET locked_at = ?, locked_by = ? WHERE id IN (#{nextScope.to_sql}) RETURNING *",now,worker.name])

it seems that find_by_sql is interpreted as "SELECT" query by ActiverRecord/Octopus gem and it tries to execute query on read-only Postgre follower. I guess the issue could be spotted on different envs with DB replicas, but originally I spotted this on Heroku.

For now I rolled back gem to version 0.3.3. I am not very strong with ActiveRecord/Octopus internals to get this fixed. Maybe this should be considered ActiveRecord or Octopus issue.

Failed custom jobs not unlocking on failure

So I have the following issue.

Custom Delayed Jobs (i.e. ones that explicitly define the perform hook) are intermittently failing to unlock on failure.

Do I need to be explicitly resetting the locked_by and locked_at attributes in one of the hooks, say the "after(job)" or "failure" hooks?

MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

I'm using MySQL 5.5.29 and after upgrading to 0.4.0 I get this error:

Mysql2::Error: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery': UPDATE delayed_jobs SET locked_at = '2013-02-10 23:59:21', locked_by = 'delayed_job host:twitzip pid:4918' WHERE delayed_jobs.id IN (SELECT id FROM delayed_jobs WHERE ((run_at <= '2013-02-10 23:59:21' AND (locked_at IS NULL OR locked_at < '2013-02-10 23:54:21') OR locked_by = 'delayed_job host:twitzip pid:4918') AND failed_at IS NULL) ORDER BY priority ASC, run_at ASC LIMIT 1 FOR UPDATE) AND ((run_at <= '2013-02-10 23:59:21' AND (locked_at IS NULL OR locked_at < '2013-02-10 23:54:21') OR locked_by = 'delayed_job host:twitzip pid:4918') AND failed_at IS NULL)

Support for Rails 4.2

Rails 4.2 has been released today. The gem doesn't support it yet

 spec.add_dependency "activerecord", [">= 3.0", "< 4.2"]

Trouble bundling with Rails 4.0.0-rc1.

Here's what I'm seeing when I try to bundle with Ruby 2.0 and Rails 4.0.0-rc1:

Updating git://github.com/collectiveidea/delayed_job_active_record.git
Fetching gem metadata from https://rubygems.org/.......
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Bundler could not find compatible versions for gem "activesupport":
  In Gemfile:
    delayed_job_active_record (>= 0) ruby depends on
      activesupport (~> 3.0) ruby

    rails (= 4.0.0.rc1) ruby depends on
      activesupport (4.0.0.rc1)

Rails 4.0 support?

Hi,
Any plans to upgrade the gem to work in rails 4.0 ?
Right now in the dependencies it say 'activerecord', ['>= 2.1.0', '< 4'], so the gem doesn't work on rails 4.0

Regards,
Eugene

locked_by needs an index

Using delayed_job 3.0.1 and delayed_job_active_record 0.3.2 we are seeing a lot of time spent in:

      update_all("locked_by = null, locked_at = null", ["locked_by = ?", worker_name])

(lib/delayed/backend/active_record.rb line 44).

Adding an index to locked_by seems necessary.

Our delayed_jobs table has 2.3 million rows (due to extensive use of run_at), but even at thousands of rows, this would appear to be a significant performance issue.

Possible faulty logic breaking reschedule_at

Im having problems with reschedule_at working properly. My worker will always make two attempts in quick succession upon failure no matter what I set reschedule_at to. I've traced it back to the ready_to_run method at line:

where('(run_at <= ? AND (locked_at IS NULL OR locked_at < ?) OR locked_by = ?) AND failed_at IS NULL', db_time_now, db_time_now - max_run_time, worker_name)

where the logic boils down to:

(A && (B || C) || D) && E

D is evaluating true when the delayed job has failed, is in the reschedule method, but before the save has taken place as shown below. I think there needs to be an extra set of parenthesis like so: ((B || C) || D)) so that D being true doesn't override the fact that run_at is still <= db_time_now

def reschedule(job, time = nil)
  if (job.attempts += 1) < max_attempts(job)
    time ||= job.reschedule_at
    job.run_at = time
    job.unlock
    job.save!
  else
    say "PERMANENTLY removing #{job.name} because of #{job.attempts} consecutive failures.", Logger::INFO
    failed(job)
  end
end

Essentially I think the line should be

where('(run_at <= ? AND ((locked_at IS NULL OR locked_at < ?) OR locked_by = ?)) AND failed_at IS NULL', db_time_now, db_time_now - max_run_time, worker_name)

I haven't thought about the ramifications of this affecting other things though

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.