sql >> データベース >  >> NoSQL >> Redis

WebおよびWorkerdynoをHerokuのNode.jsと通信する方法は?

    バックグラウンドジョブとキューイングに関する高レベルの記事が示唆しているように、Webダイノは中間メカニズム(多くの場合キュー)を介してワーカーダイノと通信する必要があります。

    あなたがやりたいと思っていることを達成するために、この一般的なアプローチに従ってください:

    • WebリクエストはWebdynoによって受信されます
    • Webdynoはキューにジョブを追加します
    • ワーカーdynoがキューからジョブを受け取ります
    • ワーカーdynoはジョブを実行し、共有コンポーネントに増分進行状況を書き込みます
    • ブラウザ側のポーリングは、Webdynoからジョブのステータスを要求します
      • Web dynoは、共有コンポーネントにバックグラウンドジョブの進行状況を照会し、状態をブラウザに送り返します
    • ワーカーdynoはジョブの実行を完了し、共有コンポーネントで完了としてマークします
    • ブラウザ側のポーリングは、Webdynoからジョブのステータスを要求します
      • Web dynoは、共有コンポーネントにバックグラウンドジョブの進行状況を照会し、完了した状態をブラウザーに送り返します

    実際の実装に関しては、Node.jsの最高のライブラリについてはあまり詳しくありませんが、このプロセスを結合するコンポーネントは、Herokuでアドオンとして利用できます。

    キュー:AMQPは十分にサポートされているキュープロトコルであり、CloudAMQPアドオンはWebとワーカーダイノ間のメッセージキューとして機能できます。

    共有状態:Postgresアドオンの1つを使用して、処理中のジョブの状態、またはMemcacheやRedisなどのよりパフォーマンスの高いものを共有できます。

    したがって、要約すると、Heroku上のdyno間で通信するには、中間アドオンコンポーネントを使用する必要があります。このアプローチにはもう少しエンジニアリングが必要ですが、その結果、適切に分離されたスケーラブルなアーキテクチャになります。



    1. redisクラスターはログWSA_IO_PENDINGを継続的に出力します

    2. MongoDB insertOne()

    3. ソートされたセットでDIFFを取得する方法

    4. MongoDBにアクセスする方法