gpt4 book ai didi

ruby-on-rails-3 - 将自定义列添加到 delayed_jobs 表

转载 作者:行者123 更新时间:2023-12-02 02:12:26 24 4
gpt4 key购买 nike

有人可以告诉我如何扩展 delayed_jobs gem 以允许我添加几个自定义列吗?

我添加了几列,但当我尝试“干净地”使用它们时,我得到:

无法批量分配 protected 属性: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**

但是,不确定扩展它的最佳方式。我的猜测/尝试是创建一个文件并将其添加到初始化程序目录。但是,由于某种原因,它不起作用。

感谢任何提示。

最佳答案

您真的需要扩展 delayed_jobs 表吗?我的方法是不管它,使用以下两种技术之一:

  • 为正在排队的对象添加 owner_id 和 owner_type 字段。
  • 创建一个单独的表,其中包含与 delayed_jobs 的 :belongs_to 关系。然后,您可以使用 DJ 的钩子(Hook)在工作的整个生命周期内使两者保持同步。

第一种方法比较简单,但并不适用于所有情况。这些对你有用吗?

关于ruby-on-rails-3 - 将自定义列添加到 delayed_jobs 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12167049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com