2017-02-14 5 views
0

Ruby on Railsを使用してウェブサイトを開発しています。私は以前にレールのウェブサイトを展開していただけで、データベースに追加して、ユースケースに基づいてデータベースから取得することができましたが、今回は少し異なります。私はデータベースに追加していますが、データがユーザーに返送される前、またはユーザーがデータを取得する前に、サーバー上で処理されるデータが必要です。私が得られないのは、サーバー上のデータをどのように処理するかです。私はこのdoesntが質問をするための通常のパターンに従うことを知っています、私は私が探しているものがわからない以外はGoogleとそれを検索します。正しい方向への軽快な動きがあります。レールとヒロクでサーバー上のデータを処理する方法

ユーザーが登録してユーザーIDを配列に入れたボタン(リクエスト)をクリックすると、サーバー上で何をする必要があるかは、ランダムにまたはランダムに2人のユーザーをいくつかのこのプログラムは無限に稼働し続けるので、ユーザーが後でもう一度やって来て、誰かと既につながっているかどうかを確認することができます。

+0

正確に何を処理したいかによって決まりますが、以下の答えは正確です。これは通常コントローラやモデルで行われます。まさにあなたが何をしたいのか、ドキュメントをチェックしたいのかを教えてください。 –

+0

あなたのコメントをありがとう、私はちょうど私がしたいことを述べて私の質問を更新 – Mordred

+0

編集したバージョンを読んだ後、これはおそらく簡単に特定のユーザーに接続を追加するレーキタスクを使用して行うことができると思います。コマンドラインからRakeタスクを実行することができます。 – Zubin

答えて

0

Railsのドキュメントをよく読んでください。これは、常にマッチを探しているバックグラウンドジョブを実行することで多くのメリットがあると思います。無限に実行されているSidekiqプロセスをユーザーと一緒に待ち合わせることができます。その後、一度終了したら、もう一度起動してください。

また、User.find_eachを実行するレイクタスクを作成し、タスクが終了したときに再度実行することもできます。しかし、これは、あなたが多くのユーザーを抱えてしまうと、物事が妨げられることになります。私はユーザーごとに1つの仕事をお勧めし、それらを使ってシステムを膨らませるだけです。これにより、水平方向と垂直方向の両方にスケールアウトできます。

あなたが探しているものを達成するのを助けるためにActiveJobSidekiqについて学びたいと思うでしょう:)。 SidekiqにはRedisが必要ですが、これもセットアップする必要があります。私は統合のためにredis-rails宝石をお勧めします。

0

BenMorganIOの回答を外すには、これはバックグラウンドワーカーの仕事だと思います。これはバックグラウンドで処理されるジョブなので、アプリの処理速度は低下しません。これの良い例は、バックグラウンドで電子メールを発することです。

は、私がこれを見てきた主に3宝石があります。

  • Resque
  • Sidekiq

    は、これらの中であなたを指している必要があります右方向。

  • 関連する問題