【问题标题】:Call hooks after the main delayed job completed主延迟作业完成后调用钩子
【发布时间】:2018-07-10 10:45:13
【问题描述】:

我一直在我的应用程序中使用delayed_job_active_record gem,在我的一个用例中,我必须在延迟工作完成后使用一个钩子发送另一封电子邮件。 https://github.com/collectiveidea/delayed_job#hooks,如何在我的应用程序中覆盖它?

目前我是这样打电话的

do_maintenance.delay(run_at: time).change_all_parts(batch_no)

do_maintenance 是模型

【问题讨论】:

    标签: ruby-on-rails ruby delayed-job


    【解决方案1】:

    来自这个 gem 的钩子提供了对作业的回调,而不是对模型的回调。但是您可以在模型中定义自定义回调。该回调将在延迟方法之后调用:

    class DoMaintenance < ApplicationRecord
      extend ActiveModel::Callbacks
    
      define_model_callbacks :change_all_parts, :only => [:after]
    
      after_change_all_parts :notify
    
      def change_all_parts
        run_callbacks :change_all_parts do
          #your delayed method
        end
      end
      handle_asynchronously :change_all_parts
    
      def notify
        #your code
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 2023-04-03
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多