メッセージをワーカー プロセスに送信するデータ ソース プロセスがあります。メモリの消費を抑えるには、メールボックスからのメッセージの取得が遅いワーカーを終了する必要があります。
私はErlangを初めて使用します。ポインタをいただければ幸いです。これが Erlang メッセージで実現するのが難しい場合、ソケットを使用できますか? もしそうなら、例はありますか?
編集:
Web から読み取り、大量のデータを生成するプロセスを登録しています。これらのデータは、Erlang メッセージを使用してすべての「サブスクライブ」プロセスに送信されます。特定のデータごとに、すべてのサブスクライバーに同じメッセージを送信します。
登録されたプロセスが読み取るデータをストリーミングする Web サーバーもあります。したがって、http クライアントが接続すると、Web サーバーはプロセスを作成し、このプロセスは登録されたプロセスにサブスクライブして、そのメッセージの受信を開始します。
登録されたプロセスは、モニターを使用してサブスクライバーを監視します。サブスクライバーは Web サーバーによって制御され、接続が閉じられると、この接続を提供していたプロセスが終了します。
受信確認はありません。つまり、サブスクライバは、メッセージが送信されたときに応答しません。このようにプログラムすることはできますが、トラフィックが多すぎると思います。
基本的に、http クライアントが遅すぎる場合は接続を閉じたいと考えています。