Foros del Web » Programando para Internet » PHP » Symfony »

Comando de consola ejecución simultanea (symfony2)

Estas en el tema de Comando de consola ejecución simultanea (symfony2) en el foro de Symfony en Foros del Web. Hola Amigos, He creado un comando para la consola de symfony2 que se ejecuta desde un cron (en linux centos) cada 5 minutos. Este comando ...
  #1 (permalink)  
Antiguo 31/07/2014, 13:51
 
Fecha de Ingreso: agosto-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 0
Comando de consola ejecución simultanea (symfony2)

Hola Amigos,

He creado un comando para la consola de symfony2 que se ejecuta desde un cron (en linux centos) cada 5 minutos. Este comando eventualmente podría tardar mas de 5 minutos en ejecutarse con lo cual se solaparía con la nueva llamada a ejecución desde el cron. Durante la ejecución del comando se actualizan registros de la base de datos y se ejecuta un algoritmo para evitar sacar registros repetidos según los flag asignados al ser procesados. (cada vez que se ejecuta el comando se obtienen registros distintos que no hayan sido procesados anteriormente)

Qué pasa cuando se solapa la ejecución de los comandos, es decir, mientras se esta ejecutando una llamada del comando y el cron realiza una nueva llamada? Como se resuelve la llamada simultanea de los procesos?

Saludos y gracias por cualquier comentario
  #2 (permalink)  
Antiguo 01/08/2014, 07:27
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: Comando de consola ejecución simultanea (symfony2)

Se va a solapara los procesos, si estas usando transacciones de forma explicita en el proceso no debe de pasar a mayores ya que no pueden afectarse los datos hasta que termine la anterior.
Asi que te sugiero que hagas pruebas en una maquina y simules el solapamientos para ver si no tienes resultados inesperados por el solapamiento.
Otra opción es que detectes que ya se esta ejecutando esa tarea de alguna forma.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 01/08/2014, 07:33
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
Respuesta: Comando de consola ejecución simultanea (symfony2)

Hola!

Yo creo que lo mejor que puedes hacer es hacer que cuando el proceso termine, te guarde la última fecha de ejecución finalizada de ese script. Un simple update DATENOW().

Entonces, cada vez que ejecutes el script, preguntas el valor de DATENOW().

Saludos!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #4 (permalink)  
Antiguo 01/08/2014, 11:08
 
Fecha de Ingreso: agosto-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Comando de consola ejecución simultanea (symfony2)

Bueno, creo que olvidé comentar que necesito que estos procesos pudiesen solaparse ya que en la eventualidad esa cantidad de x minutos podría reducirse.

Estos registros no están en una transacción de BD ya que no se requiere que todo vaya bien porque los que presentan problemas se van a un log y los que resultan exitosos se actualizan.

Y como les comenté, los registros son diferentes cada vez.

Gracias por todo.

Etiquetas: consola, cronjob, linux, symfony2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:41.