Foros del Web » Programando para Internet » PHP »

Programar tareas

Estas en el tema de Programar tareas en el foro de PHP en Foros del Web. Hola Maestros : estoy haciendo un proyecto en php en el cual realizo una consulta en la cual genero un archivo por consulta y le ...
  #1 (permalink)  
Antiguo 03/12/2002, 11:47
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 21 años, 5 meses
Puntos: 1
Programar tareas

Hola Maestros :

estoy haciendo un proyecto en php en el cual realizo una consulta en la cual genero un archivo por consulta y le pongo de nombre la fecha actual de mi sistema para que asi no tenga ningun problema cuando entren mas de un usuario ahora lo que quiero hacer es que corra un programa digamos a las 12 a.m. en el cual borre todos los archivos del dia anterior como puedo hacer esto.

espero me puedan dar un ejemplo asi de la mejor manera de hacerlo.

el sistema lo estoy haciendo en Linux pero la instalacion final se va a hacer en Windows.

gracias por todo.
  #2 (permalink)  
Antiguo 03/12/2002, 12:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tienes dos opciones:

1) confias en que tenga mas o menos visitas alguna de esas páginas de tu sitio y haces una simple comparación de fecha/hora .. si es superiror o igual a las 12 a.m. .. ejecutas el script que hace ese proceso .. sino, no hace nada. (así mismo deberias poner un flag o bandera que indique q pese q la hora es superior a las 12 a.m. el proceso ya se ha ejecutado ...)

2) (como debe hacerse). Ejecutas php desde "consola" (shell script) .. algo así como php -q tu_script.php .. El proceso de ejecutar ese script en la "consola" de tu sistema operativo lo hará: (el parámetro -q elimina las cabeceras HTTP q pudieras enviar ..)

Para Linux .. tendras q usar un CronBat:
http://www.forosdelweb.com/showthrea...highlight=cron

Para Windows .. meter esa tarea en tu "Programador de tareas" (W98 por lo menos lo tiene . W200/NT o XP algo similar tendrá).

En este caso, tus script No deben de tener cabeceras HTML pues no va a ser "lanzado" a un navegador la salida .. Solo "echo" si necesitas mostrar algo sobre el proceso .. pero lo ideal en este tipo de scripts es generar unarchivo de log con el resultado del proceso y/o errores si los hubiera.

Si no tienes acceso al sistema operativo del servidor .. tendras q usarla opción 1) ...

Un saludo,
  #3 (permalink)  
Antiguo 03/12/2002, 13:28
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 21 años, 5 meses
Puntos: 1
Diferentes Sistemas

Cluster:

tengo 2 preguntas ;

1)la pagina si va a ser visitada varias veces mi preguntas es puedo hacer un programa en php que desde la pagina de consultas empiece a buscar los archivos de un dia anterior y borrarlos?.

2)el sistema en el que se va a utilizar es en windows y si vamos a tener acceso al servidor mi pregunta es como hacer para empezar a hacer ese programa y ponerlo en el administrador de tareas.


gracias por todo.
  #4 (permalink)  
Antiguo 03/12/2002, 13:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tanto para una u otra opción empieza hacer tu aplicación que haga esa taréa de mantencion de tu base de datos o lo que necesites ejecutar .. tal cual lo harias si lo ejecutas cuando lo llames ...

Como te decia .. ya que el proceso luego va a quedar digamos "residende" y se va a ejecutar a intervalos automaticamente sin intervencion de ningun "humano" .. es recomendable que si quieres dar alguna información tipo ".. hora tal se ejectuo .. todo fue bien" .. o "hora tal .. se ejectó . .fallo en tal sitio o no se pudo hacer tal cosa" .. Ese tipo de mensajes . grabalos en un fichero de texto plano (ya sabes fwrite() .. etc) a modo de "log" .. para luego de vez en cuando editarlo para ver que todo funcione correctamente.

Si quieres .. para desarrllo de tu aplicación usa "echo" y manda los mensaje que necesites .. pero para cuando la aplicación funcion correctametne . quitalos y solo deja trabajar a tu generador de log ..

Te recomiend que leas el capítulo de PHP sobre tratamiendo de ficheros .. ahí veras funciones para leer un directorio los ficheros q contenga . .tanto su nombre como otras porpiedades como puede ser la de fecha de creación (te será util para borrar por ese criterio) ...

http://us.php.net/manual/en/ref.filesystem.php

Un saludo,
  #5 (permalink)  
Antiguo 28/04/2004, 12:10
 
Fecha de Ingreso: abril-2004
Mensajes: 20
Antigüedad: 20 años
Puntos: 0
Hola Cluster,

Yo necesito hacer algo parecido a lo que necesita Paya22, te cuento un antecedente, yo soy nuevo en PHP y yo me manejo en VB Y SQLServer, con estas herramientas hice un monitor que es similar a un servicio de windows, es decir se mantiene abierto y cada cierto intervalo de tiempo (configurable) se realizan consultas a la base de datos y dependiendo de los resultados se ejecutan otras tareas.

Yo necesito aplicar lo mismo en Linux con Apache y la verdad es que no cacho nada.

La idea es que todos los dias se ejecute este programa y realice una consulta a la base de datos y segun los resultados envíe e-mails a los destinatarios seleccionados.

Todo esto debe ser realizado en el webhosting, y no se si podré tener acceso al SO.

alguna idea?
  #6 (permalink)  
Antiguo 28/04/2004, 13:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usa un Crob Job de Linux que hace eso mismo que tu aplicación en VB .. Manda a llamar a tu script.php de proceso que se encargará de hacer tus consultas SQL o procesos que necesites en el intervalo de tiempo que definas.

Sólo asegurate de que tu servicio de hosting te deje crear Cron Job's desde tu panel de control (cPanel por ejemplo y similares tienen la opción si para tu plan contratado te ofrecen ese servicio).

En el Cron Job .. configurarías los intervalos y una llamada a tu script.php tipo:

GET http://www.tal.tal/script.php > /dev/null

(el /dev/null puede variar .. eso en tal caso te lo debe informar tu proveedor de servicio de hostig o el comando completo que puedes usar para llamar a tu aplicación en PHP (tu script.php de proceso).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 04:55.