我的工作中有以下代码段:
before_enqueue do |job|
# do something
@car = create_car
end
before_perform do |job|
# do something
@car.update(type: 'broken')
end
但是当执行作业时@car
是nil
。有可能以某种方式将实例变量从一个回调传递给第二个回调吗?即使只有ID
也没关系。欢呼声。
答案 0 :(得分:1)
您需要将此实例变量设为job
并以此方式访问:
class Car < ActiveJob::Base
attr_accessor :car
end
然后
before_enqueue do |job|
# do something
job.car = create_car
end
before_perform do |job|
# do something
job.car.update(type: 'broken')
end