Tengo un número desconocido de trabajos para ser ejecutados por un número conocido (por supuesto) de actores. El número de trabajos iniciales puede aumentar después de que un actor complete un trabajo. Es decir, un actor, al completar su tarea, podría agregar un nuevo trabajo para ser ejecutado.Cómo saber si un actor está inactivo
La forma en que estoy manejando esto es hacer que cada actor envíe un mensaje al maestro cuando completa su trabajo, no solo con el resultado de la ejecución sino también con una 'bandera' que indica que el actor está ahora inactivo . El maestro tiene una cola de trabajos y una cola de actores ociosos, cada vez que un actor envía un 'mensaje de trabajo terminado', el maestro verificará si hay algo más para ese actor que hacer ... y así sucesivamente hasta la cola de trabajos está vacío y la cola inactiva está llena ... en ese punto apagué el sistema. No hay mucha supervisión aquí, así que siento que no lo estoy haciendo bien ...
No estoy usando un enrutador porque no pude encontrar una forma de consultar al enrutador para los actores inactivos, entonces mi pregunta es:
¿Cuál es la forma "correcta" de manejar la situación que he descrito anteriormente en Akka?
Pasé por el enrutamiento de Akka y es por eso que decidí no usar un enrutador (quizás debería escribir el mío) porque no puedo consultar un enrutador sobre el estado inactivo de los trabajadores (tal vez estoy equivocado, ¿podría indicarme dónde? para mirar?) – DodoTheDeadDoo
No quise presionar enter ...De todos modos, investigaré la solución de la píldora venenosa, es como lo que estoy haciendo en este momento, no mato a un trabajador, simplemente lo puse a ralentí para que pueda ser reutilizado ... cuando ya no tengo más tareas Y todos los trabajadores están inactivos de lo que sé que he terminado. – DodoTheDeadDoo
Así que escribiré mi propio enrutador :) – DodoTheDeadDoo