2017-05-13 3 views
2

私はスコアのリストのようなものを表示するページを持っています。 サードパーティにバックグラウンドでHTTPリクエストを行い、更新されたスコアのリストを返したいと思います。 スコアが変更された場合、すべてのクライアントがほぼリアルタイムで更新されたビューを取得できるように、ページを更新したいと考えています。バックグラウンドでhttpリクエストを行い、クライアントを更新する

x分ごとにこのバックグラウンドジョブを実行してクライアントを更新するにはどうすればよいですか?

高いレベルのデザインを探していますが、バックグラウンドジョブがどのように機能するかを詳しく調べてください。

注:現在、すべてを単一ノード上で実行しています。

答えて

2

私はphoenixチャンネルを使用して非同期アップデートを行います。定期的な更新のためのカップルアプローチがあります。

バックグラウンドタスクのスケジューリングについては、quantum-elixirについてたくさんの良いことが聞きました。私は個人的にそれを使用していないと思った。

私は通常、要求を処理するGenServerを作成して自分のスケジューラを作成します。 GenServerでは、私はProcess.send_afterを使って自分宛にメッセージを送信します(genserver)。そのイベントを受け取ったら、私は仕事をして、次の期間をトリガするためにProcess.send_afterを使います。

ここに概念を示すサンプルプロジェクトsample projectの開始です。

quantum branch EDIT

Quantumパッケージを使用して同様の例です。

両方の例では、チャネルを使用して、ページを表示するすべてのブラウザをリアルタイムで更新しています。

+0

フェニックスチャンネルに精通していますか?いくつかのコードを見たいですか? –

+0

私の投稿への編集で説明したように、完全に機能する2つの例を確認できるようになりました。 –

関連する問題