Rails 和八达通 gem 以及延迟工作的问题
Rails and Octopus gem and issues with delayed job
我用八达通gem。如果我在活动记录对象上调用延迟方法,我会收到以下错误:
Delayed::DeserializationError:
Job failed to load: undefined method `[]' for nil:NilClass
只有八达通开启时才会出现该错误。
没有对活动记录对象的任何引用的延迟作业按预期工作。
解决此问题的唯一方法是更改所有代码:
active_record_object.delay.trigger_custom_action(another_active_record_object)
使用一个使用非常原始参数的虚拟 class,并在方法内重新加载活动记录对象?
class Jobs
def self.trigger_custom_action(id1, id2)
active_record_object = Something.find(id1)
another_active_record_object = Something.find(id2)
active_record_object.trigger_custom_action(another_active_record_object)
end
end
Jobs.trigger_custom_action(active_record_object.id, another_active_record.id)
我们决定改用 Rails6 的早期版本。我们没有找到解决我们在 worker dynos 上遇到的问题的方法。
我用八达通gem。如果我在活动记录对象上调用延迟方法,我会收到以下错误:
Delayed::DeserializationError:
Job failed to load: undefined method `[]' for nil:NilClass
只有八达通开启时才会出现该错误。
没有对活动记录对象的任何引用的延迟作业按预期工作。
解决此问题的唯一方法是更改所有代码:
active_record_object.delay.trigger_custom_action(another_active_record_object)
使用一个使用非常原始参数的虚拟 class,并在方法内重新加载活动记录对象?
class Jobs
def self.trigger_custom_action(id1, id2)
active_record_object = Something.find(id1)
another_active_record_object = Something.find(id2)
active_record_object.trigger_custom_action(another_active_record_object)
end
end
Jobs.trigger_custom_action(active_record_object.id, another_active_record.id)
我们决定改用 Rails6 的早期版本。我们没有找到解决我们在 worker dynos 上遇到的问题的方法。