別の方法-あなたのケースに適用できる(または適用できない)のは、gen_event動作を使用することです。
免責事項
私が「できた」と言うのは、それはあなたの「労働者」があなたの特定のケースで何をするかによるからです。返信の内容に関心がある場合は、このアプローチを使用しない方がよいかもしれませんが、すべてのワーカーがタスクを完了したという事実だけに関心がある場合 (たとえば、ワーカー プロセスが重い計算を行う場合)部分的な結果をデータベースに保存すると、部分的なものを結合する準備が整います - gen_event が行くべきルートになる可能性があります。
免責事項の終わり
そう...
OTP では、イベント マネージャは、イベントの送信先となる名前付きオブジェクトです。
イベントはメッセージです。
イベント マネージャには、ゼロ、1 つ、または複数のイベント ハンドラがインストールされます。イベント マネージャーがイベントについて通知されると、そのイベントは、インストールされているすべてのイベント ハンドラーによって処理されます。
したがって、基本的には、1 つのスーパーバイザーと複数のワーカーを使用する代わりに、イベント マネージャーと複数のイベント ハンドラーを使用します。
次に、 gen_event:sync_notify/2関数を使用できます。
sync_notify は、イベントがすべてのイベント ハンドラによって処理された後に ok を返すという意味で同期的です。
*gen_event* の詳細については、こことそこを参照してください。