0

我的应用程序以这样一种方式设置,即我们使用不同的环境为每个子域使用不同的数据库连接。延迟作业执行您所期望的(我猜)并在将作业插入其延迟作业表时使用该请求的当前环境(以及数据库连接)。

问题是 DJ 无法处理来自所有这些不同表的作业,所以我试图强制 DJ 只使用一个数据库,特别是为它设置的数据库。我已经尝试过了,但它不起作用,我不知道下一步该尝试什么。

任何指示/建议将不胜感激,真的以我的智慧结束。

尝试的代码:

Delayed::Job.class_eval do
  establish_connection ActiveRecord::Base.configurations["delayed_job"]
end

与数据库的连接是before_filterApplicationController.

4

1 回答 1

1

ApplicationController 中用于建立每个域的连接的代码只会在每个请求的应用程序服务器中发生。

将 :domain 属性添加到您的 Job 类并在您排队作业时设置它。在 Job#perform 中,建立您的数据库连接。

于 2012-12-15T22:37:28.073 回答