延迟作业错误 - DlayedJob不是模块?

时间:2012-11-06 11:08:44

标签: ruby-on-rails-3.1 delayed-job

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

安装delayed_job 3.x和delayed_job_active_record gem。

捆绑安装后尝试运行rails 生成delayed_job:active_record rails生成delayed_job:upgrade 。但两个生成器命令都抛出错误。先投掷

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

后来投掷

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

任何人都可以告诉解决方案以及我做错了什么。

谢谢你的问候

1 个答案:

答案 0 :(得分:0)

问题是,从delayed_jobs旧版本升级到新版本时,延迟作业表已经存在。所以可能是delayed_bob生成器不会存在。表结构的主要区别是名为 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

现在,您可以使用多个延迟作业并根据队列分配作业。