Foros del Web » Programando para Internet » PHP »

automatizar tareas con php/mysql

Estas en el tema de automatizar tareas con php/mysql en el foro de PHP en Foros del Web. hola amigos... cómo podría hacer para crear un script en php que automatice tareas. por ejemplo tengo un demo de cms en mi sitio web ...
  #1 (permalink)  
Antiguo 21/06/2004, 22:47
 
Fecha de Ingreso: marzo-2004
Ubicación: Bariloche ARGENTINA
Mensajes: 36
Antigüedad: 20 años, 8 meses
Puntos: 1
Pregunta automatizar tareas con php/mysql

hola amigos...
cómo podría hacer para crear un script en php que automatice tareas. por ejemplo tengo un demo de cms en mi sitio web y necesito que, cada determinado tiempo, se restablezca la base de datos (cada dos o tres horas), para no perder el contenido, y que los usuarios tengan algo siempre para editar, he visto clases en php de scheduling y cron jobs (en linux) pero nada me sirvió (además el server donde está ese sitio es windows)...

¿hay alguna manera de que se ejecute un script programado en php cada determinado tiempo, sin invocarlo desde el navegador directa o indirectamente? ¿cómo haría el script para acceder al reloj del server y así poder cronometrar una rutina si no es llamado e interpretado por el intérprete php?

muchas gracias por la ayuda...
  #2 (permalink)  
Antiguo 21/06/2004, 23:04
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años, 7 meses
Puntos: 24
creo que no

eso mismo pregunte hace unos meses.. la respuesta fue que no.. sencillamente por que los scripts se ejecutan del lado del servidor a oeticion del cliente (user)...
preguntale a tu proveedor de hosting por el programador de tareas... sino te dice nada.. cmabiate de hosting y listo....
__________________
SEO en Medellin
  #3 (permalink)  
Antiguo 22/06/2004, 00:08
 
Fecha de Ingreso: marzo-2004
Ubicación: Bariloche ARGENTINA
Mensajes: 36
Antigüedad: 20 años, 8 meses
Puntos: 1
bien... la idea no es usar ni cron jobs ni scheduler de windows... quiero evitar el:

"señor administrador del server... sería tan amable programar una tarea en la pc que alberga mi sitio para que cada dos horas el navegador x abra http://mipagina.com/elscriptdeseado.php???"

yo por ejemplo tengo funcionando un sitio de avisos clasificados que bajé de hotscripts, al cual NUNCA modifiqué NI UNA SOLA LINEA de código ni TAMPOCO he solicitado programación de tareas en mi servidor de hosting, y sin embargo, ese script envía emails a los usuarios avisándoles cuándo se vencen sus avisos.... no solo eso, cuando los avisos se vencen, si no son renovados, se borran de la base de datos...

hay algo que no me queda muy claro: eso se debe a php o a mysql ??? he visto que sql server tiene un JOB, pero no se si mysql... si es así y saben cómo hacerlo funcionar por favor díganme!!!!!
  #4 (permalink)  
Antiguo 22/06/2004, 07:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
hay algo que no me queda muy claro: eso se debe a php o a mysql ??? he visto que sql server tiene un JOB, pero no se si mysql... si es así y saben cómo hacerlo funcionar por favor díganme!!!!!
En Mysql no hay "store procedure" ni "triggers" para ejecutar esas consultas SQL que necesitas hacer en tu caso particular a intervalo de tiempos.

Cita:
"señor administrador del server... sería tan amable programar una tarea en la pc que alberga mi sitio para que cada dos horas el navegador x abra http://mipagina.com/elscriptdeseado.php???"
Un servicio de hosting "como debe ser" te ofrece un panel de control con posibilidad de crear tus própios "Cron Job" (si hablamos de Linux) ... Pero eso es otro tema ..

El hecho de usar un cron Job (o programador de taréas) no es más que por optimizción y exactitud de las taréas que ejecutas en el intervalo de tiempo que necesites y NO depender de que tu sitio tenga una visita en esa fecha/hora concreta que necesitas (a partir de esa hora) iniciar X proceso y con el consiguiente control que debes llevar de cuando se ejecutó para que si entra otro usuario NO se ejecute nuevamente tu "taréa" ..

Por ende .. Para hacer tu "taréa programada" SIN generar uno de estos "cron Job" (que para eso se inventaron y son própios del S.O. del servidor y no de un lenguaje/aplicación concreto ..) tienes que colocar tu script que hará tus sentencias SQL correspondientes en la página que más visita tenga tu sitio (index? ..)

A continuación tu script en concreto debe hacer:
1) Verificar la hora actual que se pide la página (cuando se ejecuta) y saber si está en el rango que debe ejecutarse (de horas).

Para eso puedes usar PHP y sus funciones de fechas: date() .. mktime() y operar con esas fechas (hacer restas en segundos que dá una fecha en formato TIMESTAMP por ejemplo).

2) Si corresponde ejecutar tu rutina "SQL" .. la ejecutas, pero, antes tendras que guardarte en algún sitio (una base de datos, un archivo de texto plano .. etc) que .. el proceso se inició en tal fecha/hora para que puedas verificar en el punto 1 ademas de la fecha actual que es .. si el proceso Ya se inició en el rango de fechas que establezca tu intervalo de tiempo de ejecuciones .. Por qué sino, otro usuario que entre en ese intervalo de tiempo .. no vuelva a lanzarse la ejecución de tu script.

(seguro que de todo esto ya está hecho en www.hotscripts.com o en sitios como www.phpclasses.org .. O mejor todavía . .Mira el código de esa aplicación que comentas .. Seguramente lo hace de la manera que comento o bien hace consultas SQL por fechas y rangos para realizar esas acciones que mencionas o bien combina ambos métodos)

Un saludo,
  #5 (permalink)  
Antiguo 22/06/2004, 17:40
 
Fecha de Ingreso: marzo-2004
Ubicación: Bariloche ARGENTINA
Mensajes: 36
Antigüedad: 20 años, 8 meses
Puntos: 1
Ok Cluster... gracias por tu tiempo y dedicación... ahora me queda todo mucho más claro... pero...
NO SE ME OCURRE muy bien CÓMO implementar eso que me explicás (sobre todo el punto 2) si llegás a tener a mano un CÓDIGO ya hecho como para mirarlo y ver cómo funciona te voy a agradecer... si no decime por favor dónde encuentro eso en hotscripts o phpclasses porque he buscado con varios criterios (schedule, automatized works, jobs, timers, etc) pero no he encontrado nada útil.
Con respecto al sistema de clasificados que tengo es muy complicado (tipo phpnuke) y me pierdo un poco con tanto código... clases... funciones... etc...
desde ya muchas gracias
  #6 (permalink)  
Antiguo 23/06/2004, 07:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pues .. si no está hecho (o como lo quieres tu o necesitas) .. tendrás que hacerlo. La idea más o menos es la que te he planteado.

Usando un google salío esto que te puede interesar .. usa Mysql como BD para el control de las "Job's" a realizar (y el intervalo de ejecución o fechas):

http://www.thedemosite.co.uk/phpjobscheduler/

Un saludo,
  #7 (permalink)  
Antiguo 23/06/2004, 17:39
 
Fecha de Ingreso: marzo-2004
Ubicación: Bariloche ARGENTINA
Mensajes: 36
Antigüedad: 20 años, 8 meses
Puntos: 1
Gracias Cluster.... esa url que me pasaste tiene una aplicación que hace precisamente lo que vos antes me explicabas y yo no sabía como implementar...

muchas gracias.... sos un genio
  #8 (permalink)  
Antiguo 28/08/2010, 08:20
 
Fecha de Ingreso: abril-2009
Mensajes: 8
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: automatizar tareas con php/mysql

el tema es interesante, lo que necesito es crear una tarea que se ejecute a una hora especifica para cargar un registro en mysql. no se si hacerlo con crontab o procedimientos con mysql. por favor si em pueden ayudar gracias manajo php y mysql...
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:52.