首页 > 解决方案 > 在钩子导轨之前向活动作业添加属性

问题描述

我即将为作业实现重试逻辑,重试逻辑将基于特定作业的尝试次数。所以我们计划将尝试次数作为作业的属性之一。

这是实现这一目标的一种方法,

# Set no. of attempts in the job data
  def serialize
    super.merge('no_of_attempts' => (@no_of_attempts || 0) + 1)
  end

  # Get no. of attempts from the job data
  def deserialize(job_data)
    super
    @no_of_attempts = job_data['no_of_attempts']
  end

将尝试计数存储在作业属性中,并根据该属性限制重试计数。

这在使用perform_later. 我知道在排队作业时只会调用序列化方法。

但在我的一种情况下,我只能使用perform_now. 我希望应该通过使用活动作业before_perform方法来为作业添加额外的参数,但不确定如何添加参数。请有任何建议。

标签: ruby-on-railscallbackruby-on-rails-5rails-activejob

解决方案


推荐阅读