Foros del Web » Programando para Internet » PHP »

Temporizador

Estas en el tema de Temporizador en el foro de PHP en Foros del Web. Hola [email protected] Estoy realizando mi primer proyecto de envergadura con PHP y estoy haciendo una especie de venta de productos por catalogo, pero lo estoy ...
  #1 (permalink)  
Antiguo 23/02/2006, 05:32
 
Fecha de Ingreso: diciembre-2005
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Temporizador

Hola [email protected]

Estoy realizando mi primer proyecto de envergadura con PHP y estoy haciendo una especie de venta de productos por catalogo, pero lo estoy haciendo yo, sin usar herramientas como el oscommerce, lo que pretendo es aprender php.

Y he llegado a un punto que no se como implementarlo, espero que podais darme unas ideas:

La situacion es esta: un usuario tiene que registrarse para poder operar en el sitio, y desde su perfil puede "activar alertas", estas alertas no son mas que emails que el sitio le manda a una determinada hora informandole de si ha habido algun producto nuevo metido en el catalogo o un cambio en los precios.

Mi problema es que no caigo como hacer ese temporizador que dispare ese envio masivo de emails a los usuarios que tengan activadas sus alertas en una cierta hora del dia o un dia concreto que yo le ponga por configuracion por ejemplo.

En fin, siento si soy demasiado torpe, pero es que he llegado a un punto que no caigo como poder realizar esta tarea y agradeceria cualquier ayuda o comentario al respecto, me serviria con una idea de como hacerlo, luego ya me pondria a aporrear el teclado para sacarlo adelante

saludos cordiales a todos y muchas gracias
  #2 (permalink)  
Antiguo 23/02/2006, 07:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La solución a tu problema normalmente se implementa por una aplicación externa del S.O. del servidor que ejecute un script tuyo a intervalos de tiempo (y tu script ya se encargará de hacer el proceso tal cual lo harías si lo ejecutas arbitrariamente en cualquier momento a mano).

Esas "aplicaciones" del S.O. que menciono son:

Cron Job (Linux, UNIX)
Programador de tareas (windows).

Ahí con alguna de esas herramientas creas una "tarea" que será llamar a tu script PHP en modo "CGI/CLI" (tipo: php -r script.tal .. o similar) a los intervalos de tiempo que en ese "Cron Job" o equivalente crees.

Un saludo,
  #3 (permalink)  
Antiguo 23/02/2006, 07:59
 
Fecha de Ingreso: diciembre-2005
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Yo creo que tiene que haber algo mas sencilo, nose, por poner un ejemplo de este tipo de funcionamiento, hay ciertos foros que desde la administracion por ejemplo se puede configurar para que cada ciertos dias, haga por ejemplo un mantenimiento de las tablas, compactandolas o por ejemplo en los tipicos phpBB, el activar el prune en los foros con mensajes de X antiguedad, en fin que veo que existe por ahi algo para poder simular temporizadores pero no doy con ello.

Indagando por el manual de php he encontrado dos funciones, pero no se si seia una burrada implementarlo con estos comandos:

sleep()
time_sleep_until()

Es una lastima que aun php no disponga de programacion multihilo como en otros lenguajes

saludos cordiales y muchas gracias
  #4 (permalink)  
Antiguo 23/02/2006, 08:12
 
Fecha de Ingreso: diciembre-2005
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Bueno buscando por el repositorio de phpclasses.org he encontrado una clase timer parecida a la que usa phpBB os la pongo por si interea a alguien ma, la voy a porbar y os cuento si me sirve:

(Bueno como no puedo poner la URL hasta que no tenga 15 posts pues al q le interese me lo diga y se la paso por privado o quizas lo pueda añadir un moderador, creo q seria de utilidad general)

Saludos cordiales y muchas gracias
  #5 (permalink)  
Antiguo 23/02/2006, 08:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La classe que mencionas se basa en algo bien concreto que puede que suceda o no .. De que un usuario ejecute tal script por una visita a dicha página donde tienes ahí corriendo tu scritp que hará si corresponde (por fechas, estado ..) su proceso ..

Eso realmente no te asegura que tu proceso se ejecute en los intervalos que necesitas. Puede que se retrase la ejecución de tu script en función de tus usuarios y si mueven esas páginas (las piden: ejecutan). En un sistema muy concurrido .. ni te daras cuenta de esos desfases probablemente .. pero realmente no deberías confiar en el "alguien entre a ejecutar tus scripts".

El "cron job" o un programador de taréas se configura con un sóla línea de código apenas !!!!!!!!!!!!!!. Tal vez el hecho que desconozcas ese tema en concreto hace que te sienteas "reticente" a usarlo .. Pruebalo y luego nos comentas.

Por ejemplo .. otra classe :
http://www.phpclasses.org/browse/package/270.html
(Parece que se deja ejecutando y ahi hace su proceso y control de las "Tareas" a realizar. El problema y que no detalla la documentación escasa es: como se ha de ejecutar ese script .. supongo que en modo CLI .. no vía HTTP . .ahí se quedaría colgado el "navegador" esperando la respuesta del script PHP? .. )

Un saludo,

PD: si quieres poner un link .. le quitas el www y avisas ..

Última edición por Cluster; 23/02/2006 a las 08:31
  #6 (permalink)  
Antiguo 25/02/2006, 01:53
 
Fecha de Ingreso: diciembre-2005
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Lo he probado como un cron job y funciona muy bien la verdad es que no habia caido en este forma de hacerlo, ahora en mi proyecto he creado una carpeta llamada CRON y ahi dejo los scripts a lanzar

muchas gracias Cluster
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 07:19.