Delayed_Job: code working fine without .delay / with .delay it fails. Why?

Hi all,

I wrote a simple code to set up the "pit_id" from a village table from 1 to 2, from 2 to 3 and so on. It works fine without .delay . But i need it so whats wrong with that code?

#village_controller   def post_info     @village = Village.find(params[:id])     @village.delay.upgrade     flash[:notice] = "Upgrading"     redirect_to village_url(@village)   end

#village.rb   def upgrade     sleep 3     update_attribute(:pit_id, pit_id + 1)   end

I've heard that there could be problems with the variables when using delay ?

I already tried @village.delay.upgrade(@village)

Hi all,

I wrote a simple code to set up the "pit_id" from a village table from 1 to 2, from 2 to 3 and so on. It works fine without .delay . But i need it so whats wrong with that code?

#village_controller def post_info @village = Village.find(params[:id]) @village.delay.upgrade flash[:notice] = "Upgrading" redirect_to village_url(@village) end

#village.rb def upgrade sleep 3 update_attribute(:pit_id, pit_id + 1) end

I've heard that there could be problems with the variables when using delay ?

In what way does it not work ?

Fred

Well the problem WAS that it didn't do anything, the worker just told me:

[Worker(host:Sascha-Gundels-MacBook-Pro.local pid:961)] 2 jobs processed at 96.8147 j/s, 2 failed ...

But it changed now.

All I did was setting up /config/initializers/delayed_job_config.rb

to: Delayed::Worker.destroy_failed_jobs = false Delayed::Worker.sleep_delay = 60 Delayed::Worker.max_attempts = 3 Delayed::Worker.max_run_time = 5.minutes

and restart the worker ^^'

Sorry for asking - it works now..