2012-09-24 13 views
7

¿Cómo puedo enumerar todas las asas de trabajo en un servidor de trabajos de Gearman? Estoy tratando de llegar a un enfoque de monitoreo, donde pueda enumerar todos los hilos en ejecución y sondear su estado.Lista de mangos de trabajo de Gearman

La lista de trabajos en ejecución con 'estado' y 'trabajadores' (como se describe en http://gearman.org/index.php?id=protocol) enumera las funciones y los trabajadores, pero no los controles de trabajo. Se necesita el asa de trabajo para hacer GET_STATUS, etc.

Estoy tratando de desacoplar el envío de trabajos de la supervisión, y por lo tanto no tengo el identificador de trabajo que se devuelve en el paquete JOB_CREATED.

+0

¿Alguna vez encontrar una solución? Quiero hacer básicamente lo mismo: enviar trabajos en segundo plano y dejar que otros procesos independientes los supervisen/recopilar los resultados en un momento indeterminado en el futuro. Estoy considerando enviar el identificador del identificador como un trabajo independiente para facilitar esto. – goat

+0

Desafortunadamente, no, estoy atascado al tener que guardar el identificador de trabajo de la respuesta de envío de trabajo –

+0

¿Se puede guardar el trabajo Agarrar? También podría simplemente crear una tabla db llamada jobs ... agregar una fila, obtener el id de la acción de inserción y comenzar el trabajo de fondo gearman incluyendo el id en los datos. En el trabajo de engranaje, actualiza el db después de cada acción. Luego, la secuencia de comandos del monitor simplemente sigue comprobando la base de datos ... incluso puede crear un servicio json para monitorear trabajos de artesanos. No estoy seguro de si hay un método nativo de engranaje, ya que no estoy muy familiarizado con Gearman, sin embargo, esto sería más fácil quizás y también permite que sea utilizado por cualquier plataforma sin importar el soporte para Gearman. – user1641165

Respuesta

1

Hay un montón de gestores Gearman por ahí,

https://github.com/brianlmoon/GearmanManager es un paquete completo para la gestión y visualización.

o https://github.com/yugene/Gearman-Monitor

O el que yo uso para supervisar https://github.com/liorbk/php/blob/master/GearmanTelnet.php

+0

Creo que está malentendiendo la pregunta. Todos los enfoques que describes utilizan la interfaz de administración, que envía comandos de 'estado' y 'trabajadores'. El resultado de estos no proporciona lo que estoy buscando. –

+1

Sí, lo siento, veo el problema ahora. Eché un vistazo a http://www.php.net/manual/en/class.gearmantask.php y al configurar las funciones de devolución de llamada, por ejemplo, http://www.php.net/manual/en/gearmanclient.setstatuscallback .php pero tampoco cree que estos respondan a su pregunta. Lo siento –

Cuestiones relacionadas