【发布时间】:2012-06-15 18:26:30
【问题描述】:
我有一个使用 IronWorker 的 Rails 应用程序,我需要从 worker 连接到我的数据库。我该怎么做?
【问题讨论】:
标签: ironworker iron.io
我有一个使用 IronWorker 的 Rails 应用程序,我需要从 worker 连接到我的数据库。我该怎么做?
【问题讨论】:
标签: ironworker iron.io
worker 需要显式地与数据库建立连接,因为它没有在您的应用程序中运行,因此您需要将连接信息传递给您的 worker。您可以像这样在工作负载中执行此操作:
client = IronWorkerNG::Client.new
task = client.tasks.create('MyWorker', 'database' => Rails.configuration.database_configuration[Rails.env])
然后在你的工人内部:
ActiveRecord::Base.establish_connection(params['database'])
【讨论】:
iron_worker run my_worker 命令来测试它,但我通常建议使用实际服务,因为这样您就可以确定它是完全相同的环境。 12factor.net/dev-prod-parity
我为此创建了blog post。希望对您有所帮助!
不过,简而言之,将数据库配置存储在环境变量中很容易。
【讨论】: