Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO ejecutar funcion que tarda mucho

Estas en el tema de ejecutar funcion que tarda mucho en el foro de PHP en Foros del Web. Buenas tengo un problemilla gordo que no se como solucionarlo. tengo una funcion php que lo que hace es enviar email, en concreto unos 100 ...
  #1 (permalink)  
Antiguo 01/12/2014, 19:09
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
ejecutar funcion que tarda mucho

Buenas tengo un problemilla gordo que no se como solucionarlo.

tengo una funcion php que lo que hace es enviar email, en concreto unos 100 a un departamento, estos 100 los he dividido en paquetitos de 50 osea en dos tandas.
esta funcion tiene un sleep de 30segundos, hasta aqui todo correcto.

El problema esque cuando pulso el boton de enviar claro php empieza a ejecutar esta funcion y tarda bastante, me gustaria que el proceso se ejecutara en segundo plano, y el cliente siguiera navegando por la web sin que sepa que se esta enviando.

probe con la funcion exec
exec('php process.php');

Pero me hace lo mismo, llama al fichero process y hasta que no termina no sigue con la ejecucion el php, no se como solucionar este temima
  #2 (permalink)  
Antiguo 01/12/2014, 19:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ejecutar funcion que tarda mucho

Por favor, lee el manual de exec(), ahí se explica como debes utilizar dicha función para enviar dicho proceso al background.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/12/2014, 19:47
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: ejecutar funcion que tarda mucho

Lo estuve viendo pero no me funciona correctamente, la ejecuto así

Exec (' procesos.php > /del/null &')

Pero no hace nada, sin embargo si la pongo como esta arriba tarda la leche
  #4 (permalink)  
Antiguo 01/12/2014, 19:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ejecutar funcion que tarda mucho

A ver, ¿sabes ejecutar scripts .php desde la linea de comandos?

Eso es básico, si no lo sabes hacer te sugiero consultar un manual de Unix.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 01/12/2014, 19:57
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: ejecutar funcion que tarda mucho

El servidor es bajo winfows. Si me lo puedes explicar te lo agradezco
  #6 (permalink)  
Antiguo 01/12/2014, 19:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ejecutar funcion que tarda mucho

Vaya, entonces tu problema es otro: primero debes aprender a ejecutar comandos a través de la consola de Windows.

Ese es el comando que debes ejecutar, cuando aprendas a hacerlo verás lo fácil que es usar exec().
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 01/12/2014, 20:04
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: ejecutar funcion que tarda mucho

Si se usar comandos desde cmd, el problema es que en la web no se pone en segundo plano se queda esperando el navegador.

Ejecute el scrip desde cmd así
PHP process C:\PHP5\php.exe -f "C:\PHP Scripts/processt.php

Y funciona
  #8 (permalink)  
Antiguo 01/12/2014, 20:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ejecutar funcion que tarda mucho

Cita:
Iniciado por nfo Ver Mensaje
Si se usar comandos desde cmd, el problema es que en la web no se pone en segundo plano se queda esperando el navegador.

Ejecute el scrip desde cmd así
PHP process C:\PHP5\php.exe -f "C:\PHP Scripts/processt.php

Y funciona
¿Y cuando ejecutas dicho script directamente lo manda a segundo plano?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 02/12/2014, 03:25
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: ejecutar funcion que tarda mucho

cuando lo ejecuto desde cmd logicamente se ejecuta en segundo plano y se cierra, el scrip funciona.
  #10 (permalink)  
Antiguo 02/12/2014, 07:18
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: ejecutar funcion que tarda mucho

Bueno a final lo he echo con un servicio windows.

Etiquetas: funcion, tarda
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 14:53.