有人可以告诉我如何扩展delayed_jobs gem以允许添加几个自定义列吗?将自定义列添加到delayed_jobs表
我添加了一对列,但,当我尝试“干净”使用它们,我得到:
无法大规模指派保护的属性:owner_type,owner_id
所以我需要的列添加到cattr_accessor:
module Delayed
class Worker
DEFAULT_SLEEP_DELAY = 5
DEFAULT_MAX_ATTEMPTS = 25
DEFAULT_MAX_RUN_TIME = 4.hours
DEFAULT_DEFAULT_PRIORITY = 0
DEFAULT_DELAY_JOBS = true
DEFAULT_QUEUES = []
DEFAULT_READ_AHEAD = 5
cattr_accessor :min_priority, :max_priority, :max_attempts, :max_run_time,
:default_priority, :sleep_delay, :logger, :delay_jobs, :queues,
:read_ahead, :plugins, :destroy_failed_jobs, **:owner_id, :owner_type**
但是,不确定最好的扩展方法。我的猜测/尝试是创建一个文件并将其添加到初始化程序目录。但是,由于某种原因,它不起作用。
任何提示赞赏。
我可能走这条路 - 但其他开发者已经添加了列。我想通过延迟访问这些列(:owner_id => etc ...)。否则,我必须创建一个DJ实例,并按照其他任何对象来分配值。这很好,但向宝石添加一些代码会使其成为单线程与2,3,4 ... – Northband
“否则,我必须创建一个DJ实例,并按照其他任何对象分配值“。 - 不知道我理解那个声明。如果你已经有了一个自定义延迟对象(一个实现了#perform),那么你可以添加你的:owner_id和:owner_type字段,没有额外的努力,不是吗? –