log/delayed_job.logis writeable or wherever you are writing logs
tmp/pids/exists and is writable, you should see a file
tmp/pids/delayed_job.pidwhen the process is running
bin/delayed_job runand see if any errors are shown, this does not fork a new process
delayed_jobtable? If not, go through installation instructions again.
rake jobs:work. Jobs should be processed and disappear from the database.
Assuming the delayed_job table is here, try to inspect the logs (log/developement.log). Do you use protection against mass assignment ? If yes, you should relax the rules for two fields :
ActiveRecord::Base.send(:attr_accessible, :priority) ActiveRecord::Base.send(:attr_accessible, :payload_object)
Just like you probably did for the sessions, cf. http://railsforum.com/viewtopic.php?id=32634
If the delayed_job worker cannot process the YAML code in the 'handler' field, it will permanently fail the job and, by default, remove the job from the job table. Make sure to set Delayed::Worker.destroy_failed_jobs = false so that the job stays in the table and retains the error.
One common cause of deserialization errors is that the YAML references a class not known to the worker. If this is the case, you can add
# file: config/initializers/custom.rb require 'my_custom_class'
which will force my_custom_class to be loaded when the worker starts.
According to the official Rails guides http://guides.rubyonrails.org/action_mailer_basics.html#adding-attachments, the mail gem will automatically guess the mime_type and set the encoding for emails with attachments. This does not work when the email is delivered asynchronously using delayed_job, and the email will be sent without the attachments.
To fix this, remember to add this line to your mailer: content_type "multipart/mixed"
RAILS_ENV=production script/delayed_job start
Or for Rails 4:
RAILS_ENV=production bin/delayed_job start
DJ isn't intended to work with unsaved ActiveRecord models.