nesquena / backburner

Simple and reliable beanstalkd job queue for ruby
http://nesquena.github.com/backburner
MIT License
428 stars 68 forks source link

Trigger some code when worker times out or is killed #88

Open geoffroymontel opened 9 years ago

geoffroymontel commented 9 years ago

Hi there

I'm using backburner:threads_on_fork:work in production and I'd like some code on my workers to be run when the worker times out or is killed.

I enclosed my worker code in a begin/rescue

    begin
      # do time consuming thing
    rescue => e
      Rails.logger.error("There was an error = #{e} ")
      myModel.update_attributes(state: "error")
      raise e
    end

but it seems the code in rescue is never called.

Any hint ?

Thanks in advance

geoffroy

contentfree commented 8 years ago

@geoffroymontel Once 1.1 goes out (today?) you'll be able to add hooks for on_retry and on_bury. Will those be sufficient?

geoffroymontel commented 8 years ago

@contentfree I don't think these hooks will be triggered when the worker is killed but I will try the new version and keep you updated. Thanks !

contentfree commented 8 years ago

Possibly. You mean killed killed, not just buried. They should work for timeouts though…