2
私のプロジェクトではResqueを使ってバックグラウンドタスクを処理しています。ActiveRecordの "SHOW TABLES"クエリ
ActiveRecordは、通常、最初にモデルを使用したときに「SHOW TABLES」および「SHOW FIELDS FROM」クエリを実行してからキャッシュします。私の問題は、Resqueがすべてのジョブに対して新しいプロセスをフォークするので、これは決してキャッシュされず、ActiveRecordはこれらのクエリをすべてのジョブで再度実行するということです。
ActiveRecordにこれらのクエリを強制的にキャッシュさせるための推奨方法は何ですか? 私のモデルのほとんどの "Model.inspect"をイニシャライザに追加すると役立ちますが、いくつかの "SHOW TABLES"クエリは残っています。 lib/tasks/resque.rake
に例えば
# Make sure we've pre-loaded all of the schema information
Resque.before_first_fork do
ActiveRecord::Base.send(:subclasses).each { |klass| klass.columns }
end
、::あなたはresqueのための環境の初期化を行う必要があり、あなたのrakeタスクで