有人可以告訴我如何擴展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字段,沒有額外的努力,不是嗎? –