Foros del Web » Programando para Internet » PHP »

Lanzar procesos php en el servidor de forma automatica

Estas en el tema de Lanzar procesos php en el servidor de forma automatica en el foro de PHP en Foros del Web. Hola a todos, estoy programando un pagina en php que tengo colgada en en el ordenador de mi casa bajo windows Xp, he de lanzar ...
  #1 (permalink)  
Antiguo 26/08/2005, 15:04
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Lanzar procesos php en el servidor de forma automatica

Hola a todos, estoy programando un pagina en php que tengo colgada en en el ordenador de mi casa bajo windows Xp, he de lanzar un proceso en el servidor escrito en php de forma autonoma a una hora determinada (siendo esta hora una varible global que irá modificandose, es decir puedo tener que lanzar este proceso 10 veces en una hora), es decir, sin que un usuario tenga que navegar por la página para que se ejecute este evento.
La verdad es que no se como hacerlo no se si se hace en las tareas programadas de windows o he de tocar el apache o el php (siendo estas dos ultimas opciones las mejores), no tengo ni idea y ya estoy un poco desesperado


Gracias a todos por vuestra ayuda.

Última edición por OrionKing; 27/08/2005 a las 05:25
  #2 (permalink)  
Antiguo 26/08/2005, 15:18
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
Hola, lamento que el post este duplicado, pero cuando he publicado el primero he insertado un dispositivo por el usb y se ha quedado frito el pc, al volver a entrar no he visto el mensaje y pensaba que no se habia grabado, siento las molestias, si hay algun administrador que eliminine uno de los dos.

gracias y lo siento.
  #3 (permalink)  
Antiguo 26/08/2005, 16:53
 
Fecha de Ingreso: julio-2005
Ubicación: Mexicali, B.C.
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Misma tarea

Hola, todavia no estoy desarrollando esa parte, pero lo tengo contemplado en una aplicacion, espero pueda ayudar, para hacer eso windows te puede programar la tarea(task manager) al ejecutar la aplicacion Php se abrira una instancia de Iexplorer y se ejecutara el script. De ese script depende lo que quieras hacer pero recuerda que el script se abre se ejecuta y se muere. Si deseas que pernanesca en memoria necesitas habililar php para que funcione desde la linea de comando, y se ejecutaria como un batch o exe. Que dando la instancia del programa abierto en el server, ya depende de los ciclos o bucles que uses dentro del programa para mantenerlo abierto.

Última edición por coche; 26/08/2005 a las 16:58 Razón: no termine ups
  #4 (permalink)  
Antiguo 26/08/2005, 17:17
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
Hola, muchas gracias por contestar, he estado mirando el Tarea programadas, pero no veo como lanzar el script de php, me podrias dar mas informacion al respecto, como indicar en que momento quieres que se ejecute y como ejecutarlo.
Si sabes donde podria encontrar la información tambien seri de gran ayuda.
En cuanto a salvar la info, en principio no es problema por que la guardaria en la base de datos.

Muchas gracias.
  #5 (permalink)  
Antiguo 26/08/2005, 17:47
 
Fecha de Ingreso: julio-2005
Ubicación: Mexicali, B.C.
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
respuesta

debes programar una nueva tarea con el iexplorer.exe, terminar los pasos del asistente, una ven en lista abrir las propiedades de la tarea, la primer ventana temuestra el path del programa al final de la linea le debes agregar el path del archivo php ejemplo:

C:\ARCHIV~1\INTERN~1\iexplore.exe http://localhost/archivo.php

espero te sirva.
  #6 (permalink)  
Antiguo 26/08/2005, 18:19
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
!Pues si! me sirve, mil millones de gracias. Ahora si alguien supiera como hacer que la planificacion fuera dinamica que no tuviera que pasar por el interface grafico de windows, es decir que lo pudiera cargar desde un fichero que yo iría modificando o algun tipo de variable, bbdd, etc. La idea es que sea dinamico, yo no se si se repetira cada 2:30 min o cada 3 min ya que estos intervalos de tiempo los calculará el php.

Muchas gracias Jose, te invitaría a un café pero viendo de donde eres, mejor te envio un saludo muy grande :D. Muchas gracias en serio.
  #7 (permalink)  
Antiguo 26/08/2005, 18:35
 
Fecha de Ingreso: julio-2005
Ubicación: Mexicali, B.C.
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
De nada .. arrieros somos y en el camino andamos

De nada .. arrieros somos y en el camino andamos.
No se si te entendi, puedes crear un archivo de texto (separado por caracteres especiales, como db), un archivo log (existen funciones de php para archivos log) o un archivo XML(Utilizando metodo SAX), donde vayas llevando una lista de las horas de ejecucion.
  #8 (permalink)  
Antiguo 26/08/2005, 18:48
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
¿Me podrías indicar donde encontrar como hacer el archivo de texto (que formato) y como cargarlo, para que me ejecute las tareas programadas cuando quiera? o leer del log que genera el php (que por cierto tampoco se como se hace).
Como en el caso anterior me interesa mucho lo que me dices pero la verdad es que no se como hacerlo.

Muchas gracias de antemano. :D
  #9 (permalink)  
Antiguo 27/08/2005, 07:55
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
Hola a todos, alguien sabe como programar (en codigo) las tareas progrmadas windows. Necesito lanzar el procesos autonomos en unos instntes determinados.

Si alguien sabe donde puedo encontrar la información le estaria muy agradecido.

Muchas gracias.
  #10 (permalink)  
Antiguo 27/08/2005, 10:45
 
Fecha de Ingreso: octubre-2003
Ubicación: Veracruz, México
Mensajes: 169
Antigüedad: 14 años, 1 mes
Puntos: 0
CLI es la solución...

PHP, no es exclusivamente un lenguaje para el WEb, y no necesitas forzosamente de un navegador Web para "correr" o "ejecutar" un script de PHP. Esto es gracias a CLI. Para más infomración te sugiero visites la página oficial de php y te documentes al respecto http://www.php.net/manual/en/features.commandline.php
Para correr un script de PHP tienes que colocarte en la ruta donde se encuentre el ejecutable de PHP que te permita ejecutar los scripts php.

Si tienes PHP 4, deberás buscar el subdirectorio cli/ y ahi encontraras un php.exe de manera que en Tareas programadas buscaras ese ejecutable y le pasaras como parametro el nombre de tu script y su ruta. De la sig. forma:

rutaaphp/cli/php - f rutaatuscript/tuscriot.php

Si tienes PHP 5, no encontraras ese subdirectorio pero igual encontraras en donde instalaste PHP un archivo php.exe, a ese le haras referencia y haras lo mismo:

rutaaphp/php - f rutaatuscript/tuscriot.php

Como veras en la documentación el -f le indica al ejecutable de php ke parseara un archivo copleto.

Te repito que visites la URL que te mencioné anteriormernte y para que puedas ver todo lo ke concierne a CLI y que cosas puedes hacer.

Ya checaras bien lo de como programar las Tareas en tu S.O. (Checa en Tareas programadas y ahi agrega una )

Espero haber podido ayudarte
Suerte

Saludos desde Veracruz México

Última edición por ray_rockus; 27/08/2005 a las 11:04
  #11 (permalink)  
Antiguo 28/08/2005, 09:30
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
Muchas gracias por lo del CLI me ha ido perfecto.
Ahora solo necesito lanzarlo en el momento que yo desee, ¿No hay alguna manera de utilizar el Planificador de tareas desde la linea de comandos? A lo mejor así podría pasarle un parametro con la hora,minutos y segundos que necesito que se lance el proceso, que lo lea de un fichero o algo que yo pueda dinamizar.

Pero ya veo algo de luz al final de tunel

Solo me queda poder dinamizar el lanzamiento del proceso.

Muchas gracias, en serio.

Un saludete a todos desde la Peninsula Iberica
  #12 (permalink)  
Antiguo 29/08/2005, 11:50
 
Fecha de Ingreso: octubre-2003
Ubicación: Veracruz, México
Mensajes: 169
Antigüedad: 14 años, 1 mes
Puntos: 0
Yo te recomendaria visitaras el foro de Sistemas Operativos, tal vez alli alguien pueda responder o puedas encontra algo en las FAQ's. Date una vuelta y nos cuentas como solucionaste tu problema.
Me ha sido gratificante saber que mi comentario te ayudo, pues para eso estamos...

Saludos !
  #13 (permalink)  
Antiguo 29/08/2005, 12:51
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
Mas o menos ya esto todo solucionado :D
Os dejo la respuesta a mi problema que encontre en el foro de Microsoft:
Generar un bat que contenga:

@echo off
:a
proceso a lanzar
ping -n 10 localhost
goto a

Je je, si son 10 segundos, lanzar 10 pings al localhost :D
La gente se quejó pero no dijeron nada mas.

Al final lo he arreglado con el CLI.

Gracias a todos.
  #14 (permalink)  
Antiguo 29/08/2005, 14:18
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 12 años, 3 meses
Puntos: 0
De acuerdo

Hola a todos, ya he resuelto completamente el problema y lo voy a dejar aqui escrito por si alguien le sirve de ayuda.

Al final he pasado de la opcion de realizar un bat con un ping al localhost por segundo :D

Utilizando el CLI he llamado al php que contiene la funcion que realiza la tarea y la he llamado dentro de un bucle infinito en el que incluido un timer (sleep), la funcion entre otras cosas me devolvia el tiempo la siguiente ejecucion que recivia el sleep como variable.
ej:

function SuperFuncion{
...

}

while(true){
sleep($duracion);
SuperFuncion();
}

El fichero php se llama desde a linea de comandos.

Y ya esta! problema solucionado.
Dar las gracias a todo el mundo que me ha ayudado a resolver el problema.
He mirado multiples soluciones y al final la mas sencilla la mejor :D.
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 22:00.