Foros del Web » Programando para Internet » PHP »

PHP OO Funcion en Background

Estas en el tema de Funcion en Background en el foro de PHP en Foros del Web. Buenas noches amigos, Vengo con una duda o pregunta que me parece interesante a ver si alguien tiene idea. Hace poco tuve un desarrollo en ...
  #1 (permalink)  
Antiguo 18/11/2014, 19:34
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Funcion en Background

Buenas noches amigos,

Vengo con una duda o pregunta que me parece interesante a ver si alguien tiene idea.
Hace poco tuve un desarrollo en el cual necesitaba ejecutar cosas en el sistema en momentos en que el usuario incluso pudiese cerrar sesión... y sus solicitudes se siguieran ejecutando.... Mi solución para ello fue crear un cron job que me hiciera solicitudes a un metodo de mi página cada cierto tiempo para poder ejecutar continuamente lo que podría requerirse.... No sé si fue la mejor, pero fue lo que se me ocurrio. Ahora, hace poco vi en Yii que tienen un metodo "runBackground" o algo así que precisamente, te permite ejecutar metodos en segundo plano.... y q se sigan ejecutando aun cuando se cierre el navegador o la sesión.... ¿Alguien tiene idea de como hacer esto en php? Gracias de antemano.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #2 (permalink)  
Antiguo 18/11/2014, 19:41
 
Fecha de Ingreso: noviembre-2009
Mensajes: 205
Antigüedad: 14 años, 5 meses
Puntos: 15
Respuesta: Funcion en Background

Dependiendo de lo que busques hacer probablemente sea factible a través de funciones de ejecución de programas o por triggers de MySQL
  #3 (permalink)  
Antiguo 18/11/2014, 19:46
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: Funcion en Background

Cita:
Iniciado por RoyKeane Ver Mensaje
Dependiendo de lo que busques hacer probablemente sea factible a través de funciones de ejecución de programas o por triggers de MySQL
Perfect, de hecho ya habia pensado en la función exec. lo que me causo impresión es que en ese caso, por ejemplo en caso de ser programs externos... dependeria del S.0 sobre el cual esté montado el sistema no? si es Linux croms. pero si fuese windows .batchs? Los triggers, se para que sirven.. pero no es eso exactamente pues eso responde a una acción especifica. Gracias por responder.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #4 (permalink)  
Antiguo 18/11/2014, 19:53
 
Fecha de Ingreso: noviembre-2009
Mensajes: 205
Antigüedad: 14 años, 5 meses
Puntos: 15
Respuesta: Funcion en Background

Cita:
Iniciado por rjulio21 Ver Mensaje
dependeria del S.0 sobre el cual esté montado el sistema no?
Si, de cualquier forma ese es el menor de los problemas en mi opinión, no es más que detectar el OS y en base a eso ejecutar una instrucción u otra.
Los mayores inconvenientes vienen todos por el lado de la seguridad.
  #5 (permalink)  
Antiguo 19/11/2014, 10:24
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Funcion en Background

Cita:
Buenas noches amigos,

Vengo con una duda o pregunta que me parece interesante a ver si alguien tiene idea.
Hace poco tuve un desarrollo en el cual necesitaba ejecutar cosas en el sistema en momentos en que el usuario incluso pudiese cerrar sesión... y sus solicitudes se siguieran ejecutando.... Mi solución para ello fue crear un cron job que me hiciera solicitudes a un metodo de mi página cada cierto tiempo para poder ejecutar continuamente lo que podría requerirse.... No sé si fue la mejor, pero fue lo que se me ocurrio. Ahora, hace poco vi en Yii que tienen un metodo "runBackground" o algo así que precisamente, te permite ejecutar metodos en segundo plano.... y q se sigan ejecutando aun cuando se cierre el navegador o la sesión.... ¿Alguien tiene idea de como hacer esto en php? Gracias de antemano.
Busca información sobre asynchronous process hay muchas formas de de abordar el problema pero la peor es la que comentan de usar exec. existen otras opciones.
El caso de YII es simple, hace un nuevo request y cede el procesamiento de la tarea a otro controlador, esto lo hace mediante post y es algo muy sencillo de implementar con curl.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 19/11/2014, 18:17
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: Funcion en Background

Cita:
Iniciado por hhs Ver Mensaje
Busca información sobre asynchronous process hay muchas formas de de abordar el problema pero la peor es la que comentan de usar exec. existen otras opciones.
El caso de YII es simple, hace un nuevo request y cede el procesamiento de la tarea a otro controlador, esto lo hace mediante post y es algo muy sencillo de implementar con curl.
Gracias por responder, pero precisamente por eso hice la consulta.... en busca de algo más funcional. Yo he trabajado con cURL, pero creo que no es tan "simple" pues como lo he manejado "cURL" espera una respuesta siempre! lo cual tecnicamente ata a que la pagina espere la "respuesta de cURL" no? o se puede hacer la solicitud sin esperar q retorne? Por su parte, valide que YII sigue ejecutando la función en "segundo plano" incluso si cierras el navegador.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #7 (permalink)  
Antiguo 19/11/2014, 19:02
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Funcion en Background

Cita:
Iniciado por rjulio21 Ver Mensaje
Gracias por responder, pero precisamente por eso hice la consulta.... en busca de algo más funcional. Yo he trabajado con cURL, pero creo que no es tan "simple" pues como lo he manejado "cURL" espera una respuesta siempre! lo cual tecnicamente ata a que la pagina espere la "respuesta de cURL" no? o se puede hacer la solicitud sin esperar q retorne? Por su parte, valide que YII sigue ejecutando la función en "segundo plano" incluso si cierras el navegador.
Nuevamente lo que hace yii es simular que es un cliente y envía un http request sin esperar respuesta nuevo hacia otro método de un controlador.
Y nuevamente existen muchas opciones para hacer lo que necesitas por ejemplo puedes usar guzzle: https://github.com/guzzle/guzzle, soccket, pthread o amp: https://github.com/amphp/amp
message queue: http://php.net/manual/en/book.sam.php o alguno otro http://queues.io/, etc.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 19/11/2014, 19:07
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: Funcion en Background

Bueno muchas gracias. Supongo que será revisar esas enlaces. mi pregunta, no fue por dudar de su respuesta. simplemente porque de repente para mi el que se simule un cliente sin que espere respuesta no es tan facil de entender el como sucede. Dejame revisar lo que pasas igual. muchas gracias.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #9 (permalink)  
Antiguo 20/11/2014, 09:22
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Funcion en Background

Cita:
Iniciado por rjulio21 Ver Mensaje
Bueno muchas gracias. Supongo que será revisar esas enlaces. mi pregunta, no fue por dudar de su respuesta. simplemente porque de repente para mi el que se simule un cliente sin que espere respuesta no es tan facil de entender el como sucede. Dejame revisar lo que pasas igual. muchas gracias.
En mi primera respuesta te dije que investigaras sobre asynchronous process (o php multitasking) por que es necesario que sepas primero cual es el fundamento detrás de la solución. Eso te va permitir aplicarlo posteriormente a diferentes panoramas, por ejemplo la solución per se de yii es sencilla de implementar y puede ser útil en ambientes donde no tienes control sobre el servidor pero tal vez no aplique en otras situaciones.
Te dejo mas información sobre el tema:
http://blog.codepath.com/2012/11/15/...s-not-a-queue/
http://blog.codepath.com/2013/01/06/...essage-queues/
http://www.mullie.eu/parallel-proces...i-tasking-php/
http://www.sitepoint.com/introductio...i-tasking-php/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Última edición por hhs; 20/11/2014 a las 12:19
  #10 (permalink)  
Antiguo 20/11/2014, 12:22
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: Funcion en Background

Bueno perfecto. revisaré esa documentación

Muchas gracias.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos

Etiquetas: background, funcion
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 18:04.