0

我正在为我的应用程序使用 rails 3.1.3。对于后台作业延迟作业 2.1.4 正在使用。现在我正在尝试将延迟的作业更新到 3.x。

安装了delayed_job 3.x 和delayed_job_active_record gem。

在 bundle install 尝试运行 rails generate delayed_job:active_recordrails generate delayed_job:upgrade之后。但是两个生成器命令都抛出错误。第一次投掷

无法加载生成器“generators/delayed_job/active_record_generator”。错误:DelayedJob 不是模块

稍后投掷

无法加载生成器“generators/delayed_job/upgrade_generator”。错误:DelayedJob 不是模块

谁能告诉我一个解决方案以及我做错了什么。

谢谢问候

4

1 回答 1

0

问题是,从delayed_jobs 旧版本升级到新版本时,延迟作业表已经存在。所以可能是延迟鲍勃生成器不会在那里。表结构的主要区别是一个名为queue的附加列。所以我们需要将此列添加到delayed_jobs 表中。生成器命令也做同样的工作。它生成迁移以更改表并添加列。我通过阅读源代码找到了它。所以我们可以手动编写一个迁移来改变表。

    rails g migration migration name   

然后将以下代码添加到迁移并运行迁移。

    def up
      add_column :delayed_jobs, :queue, :string
    end
    def down
      remove_column :delayed_jobs, :queue
    end

现在您可以处理多个延迟的作业并根据队列分配作业。

于 2012-11-07T04:56:58.097 回答