プールを維持するgen_serverプロセスがあります。受信リクエストごとに、この受信リクエストに一致するものがあるかどうかを調べる必要があります。一致するものがある場合は、一致するものがプールから削除されて返信されます両方の要求に対して行われます。もし存在しなければ、新しい要求は後の検査のためにプールに入れられる。Erlang:タイマーは大丈夫ですか?
ビズロジックがあることを必要とし、R
、要求場合は、私は「私はあなたのための一致を見つけることができません」のようなものを言ってR
への返信を作成する必要があり、一致しなくてT
秒間プールに座っています。
理想的には、私はタイマーでこれを行う必要があります。具体的には、到着したリクエストごとに、一致するものがない場合は以前と同じようにプールに入れますが、時間が来たらgen_serverにもちろん、それが後で一致する場合は、タイマーをキャンセルする必要があります。
私の懸念は、プールに不一致なリクエストが多数ある場合、実行中のタイマーがたくさんあることです。これは(タイマーが多すぎると)問題になるのでしょうか?
すべてのタイマが同じように動作するわけではありませんが、私は 'timer:start'は一般に避けられ、パフォーマンス上のペナルティを受けていますが、何千ものプロセスで' erlang:send_after'を使うのが一般的です。 – Reith
@Reith私は 'erlang:send_after'を使用しています –