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..