简体   繁体   中英

Delayed Jobs Hooks do not work?

I'm trying to make my delayed jobs hooks work, but they don't seem to be. Are they outdated? If they are not, can you show me an example of yours?

Here's mine:

class PhotoJob < Struct.new(:image_id)
  def perform
    Photo.find(self.image_id).regenerate_styles!
  end
  def error(job, exception)
    if Photo.exists?(self.image_id)
      Photo.find(self.image_id).regenerate_styles!
    else
      Delayed::Job.find(self).destroy
    end
  end
end

The reason I say they do not work is because if I upload a hundred images, half of them will fail with an error. If the error is raised, then the hook should be run, right?

Here's the catch, if I find the photo that's failing, and run Photo.find(n).regenerate_styles! , then the photo regenerates appropriately and works.

So I'm guessing that Delayed Jobs' hooks are not working.

They've been working ok for me:

class BaseProcessorJob
  def perform
    raise NotImplementedError
  end

  def error(job, exception)
    Rails.logger.error "Job failed #{exception}"
  end
end

I originally had a similar problem with hooks not getting called because of an outdated delayed_job gem (it was actually installed as a plugin, which caused my problems). Not sure if any of that helps you though.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM