Busco: puesta en marcha de un sript a determinadas horas automaticamente

Iniciado por Wargolth, 25 Enero 2009, 16:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Wargolth

Hola a todos,

Mi andadura por PHP continúa y el punto que me bloquea ahora es el siguiente. Me gustaría que un cierto script que voy a escribir, se ejecutase automáticamente con la frecuencia que yo le imponga por ejemplo a diario a las 8 de la mañana. El script recorrería una base de datos actualizándolos.

Por ejemplo: poniendole a una base de datos con empleados un boolean "ha_venido_a_trabajar_hoy" como false para que a medida que llegan cada uno y entran en la página se vayan cambiando a true.

El objetivo es que todas las noches este script se ejecute sólo a una determinada hora y que no dependa de si yo me acuerdo o no. Tengo la idea de que será posible hacerlo pero ignoro qué forma va a tener, ya sea programa, propiedad de mi servidor, o lo que sea que tenga que hacer.

¿Qué estoy buscando, una función?¿Hay algún tipo de soporte que haga esto en PHP?

Un saludo y gracias por vuestra ayuda por anticipado. Si son necesarias más precisiones pedídmelas.

Iago

Makiz0rz

Lo más útil que veo yo es que, en el ordenador en el que se ejecuta ese script, se hagan unas reglas con el comando cron, que permite hacer acciones a determinadas horas. Mírate el man cron (sobre Linux) y tendrás toda la información necesaria.

Kalith

yo vi un sistemas en un maraton de programación que hacia algo parecido, lo que hacia era con ajax iva actualizando y tenia un timer que se comparaba con la hora obtenida del sistemas y si era la hora pues daba el login puedes hacer lo mismo

eLank0


Wargolth

Si no he entendido mal (que sería lo más probable), hace falta que mi ordenador tenga Linux y que esté encendido a la hora a la que quiero lanzar el script. Es decir, no se hace automáticamente nada más que si mi ordenador está activo.

Estoy en lo cierto o no?

Gracias por la ayuda. De hecho ya había caído alguna vez sobre esto pero lo había descartado al ver que necesita Linux. Sigo siendo usuario fiel de Windows...

Wargolth

alone-in-the-chat

???

Tan fiel usuario de windows que no sabes que tb existen herramientas cron para el mismo...




Saludos¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

^Tifa^

No todo el mundo sabe BATCH yo al menos no se BATCH de Windows....

Si tienes MySQL desde la version 5.1.x en adelante, create un evento dentro del mismo MySQL que funcionaria como una tarea programada.

Por ejemplo :

Código (sql) [Seleccionar]


mysql> CREATE EVENT EVENTO
ON SCHEDULE
EVERY 24 HOUR
DO

UPDATE TABLA1 SET REGISTRO1 = 'ALGO' WHERE REGISTRO1 = 'ALGUITO';



Con lo anterior si lo creas a las 8:00 pm de la noche se ejecutara cada 24 horas.. o sea todos los dias a las 8 de la noche siempre y cuando la PC este encendida.

Para crear un evento en MySQL requieres que el usuario tenga el privilegio SUPER o hacerlo con el usuario root de MySQL.

Wargolth

Buenas,

Perdón por revivir el tema pero es que por vueltas que da la vida, me he vuelto a meter en mi proyecto, y convergí de nuevo hacia la misma piedra: como correr scripts (un .PHP que me actualice una base de datos cada día).

El problema es que para las soluciones que me habían puesto por aquí, era necesario el tener el ordenador encendido. Curl, el evento SQL y alguna otra. Me interesa la opción del cron pero si pudiese ponerla de alguna manera en el servidor. Es decir hacer lo mismo que me proponíais algunos pero en el servidor en vez de en mi ordenador para que cuando mi PC esté apagado el script también funcione.

Gracias por la ayuda. Tanto en buscar como en Google no hago más que girar en círculos...

Wargolth