Una alternativa - que podría (o no podría) aplicarse a su caso es usar el comportamiento gen_event.
RENUNCIA
digo " podía" porque depende de lo que sus "trabajadores" pueden hacer en su caso específico. Si está interesado en el contenido de sus respuestas, puede preferir no utilizar este enfoque, pero en el caso que le interese solo que todos los trabajadores hayan completado sus tareas, por ejemplo, los procesos de los trabajadores hacen cálculos importantes. y almacena su resultado parcial en una base de datos, por lo que está listo para combinar los parciales, gen_event podría ser el camino a seguir.
FIN DE RENUNCIA
Entonces ...
En OTP, un gestor de eventos es un objeto llamado a los eventos que se pueden enviar.
Los eventos son mensajes.
En el administrador de eventos, se instalan cero, uno o varios controladores de eventos. Cuando se notifica al administrador de eventos sobre un evento, todos los controladores de eventos instalados procesan el evento.
Así que, básicamente, en lugar de tener un supervisor y varios trabajadores, tiene un administrador de eventos y varios controladores de eventos.
continuación, se puede utilizar la función de gen_event:sync_notify/2:
sync_notify es sincrónico, en el sentido que le proporcione bien después el evento ha sido procesado por todos los controladores de eventos.
Para obtener más información acerca de la gen_event * * buscar y herethere.