默认破坏了sidekiq任务



在我的Rails应用程序中,我有一个名为"步骤"的模型,可以具有许多图像:

class Step < ActiveRecord::Base
     has_many :images, :dependent => :destroy
     ...

由于依赖的破坏条件,当我删除步骤时,它会删除所有相应的图像。

但是,我希望删除图像在背景任务中发生。我知道我可以使用sidekiq用类似的东西打电话给控制器中的一个工人来做到这一点:

    @step.images.each do |image|
      CarrierwaveImageDeleteWorker.perform_async(image.id)
    end

,但由于由于依赖的销毁条件会自动删除这些图像,因此我不确定如何调用Sidekiq Worker。触发销毁动作后,拥有图像会自动调用Sidekiq背景任务的最佳方法是什么?

我通过覆盖图像模型中的默认破坏方法来解决此问题:

  # override destroy method to put it in a background task
  class Image < ActiveRecord::Base
  def destroy
    CarrierwaveImageDeleteWorker.perform_async(self.id)
  end

相关内容

  • 没有找到相关文章

最新更新