我有一个使用 IronWorker 的 Rails 应用程序,我需要从 worker 连接到我的数据库。我该怎么做?
工作线程需要显式连接到数据库,因为它未在应用程序中运行,因此您需要将连接信息传递给工作线程。您可以在工作线程有效负载中执行此操作,如下所示:
client = IronWorkerNG::Client.new
task = client.tasks.create('MyWorker', 'database' => Rails.configuration.database_configuration[Rails.env])
然后在您的员工内部:
ActiveRecord::Base.establish_connection(params['database'])
我为此
写了一篇博客文章。希望对您有所帮助!
简而言之,将数据库配置存储在环境变量中使其变得容易。