2016-06-11 11 views
0

私のRails 5 RC1アプリでは、ActiveRecordモデルを使用してDBテーブルにログエントリを書き込みます。 このログエントリを書き込むには、数ミリ秒かかり、エンドユーザーの応答が遅れます。 私は「バックグラウンド」へのログ書き込みをどのように実行して、レスポンスをブロック/遅延させないようにするかを探しています。あなたはそれを行う方法についていくつかのヒントを持っていますか?Rails:非同期にレコードを書き込む

私は

Thread.new { code } 

にそれぞれの部分をラップしようとしたが、これはさらに、応答数MSを遅らせているようです。

何かヒントありがとうございます!

おかげに関して

答えて

0

非同期取引や活動のためのRabbitMQのようなメッセージングサービスに探してみてください。私はRabbitMQをあなたの記述方法とまったく同じ方法で使用します。

+0

このヒントをありがとう。私はすでにそれについて考えていました。しかし、私はサーバーに追加のインストールを必要としないソリューションを見つけることを望んでいた... – Daniel

0

ActiveJobを使用している場合は、:asyncを使用できます。これはActiveJobのデフォルトのqueue_adapterになります。ただし、これは再起動の間にジョブを維持するものではなく、実際には生産には推奨されません。

Rails 5 changed Active Job default adapter from Inline to Asyncを参照してください。

関連する問題