Foros del Web » Programando para Internet » PHP »

Ejecutar una hora más tarde código.

Estas en el tema de Ejecutar una hora más tarde código. en el foro de PHP en Foros del Web. En realidad son 15 minutos cuando lo voy a hacer pero lo que me interesa es el concepto, por eso pongo una hora sino alguno ...
  #1 (permalink)  
Antiguo 14/04/2011, 09:38
 
Fecha de Ingreso: febrero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 1
Ejecutar una hora más tarde código.

En realidad son 15 minutos cuando lo voy a hacer pero lo que me interesa es el concepto, por eso pongo una hora sino alguno igual me da una solución de meterme en un bucle infinito hasta que lleguen los 10 minutos.

Explicare de una forma reducida lo que hace mi web
-100 usuarios introducen numeros ej. 1,2 o 3.

Yo guardo estos numeros en la base de datos.
Cuando el usuario 100 ha introducido su numero ej. 2 yo tengo en la base de datos
100 nºs tipo 1,2,2,2,3,1,3,2,3,1,2....2

Ahora doy 10 minutos extra para que usuarios metan mas numeros y en este momento quiero ejecutar una operacion con todos los numeros por ej. la suma.

Como puedo controlar el tiempo en php?
Teniendo en cuenta que mi web se basa en las sesiones, las abren cierran, navegan cambian de navegador...
Pero todo eso no quiero que afecte al resultado de la operación.
He leido algo y he visto algunas cosas:
-register shutdown function creo no me sirve a mi.
-sleep() no estoy seguro de si sirve para lo que quiero no vaya a ser que al cerrar sesion...
y luego cosas más complicadas pero supongo que mas potentes y mejores
-cron
-daemons

Si no recuerdo mal en el Ogame k ha muchos les sonara se manejaban acciones en el tiempo bueno pues yo quiero más o menos eso.
Quiero ejecutar algo dentro de x tiempo pero para todos los usuarios y que no tenga que loguearse ningún usuario ni hacer ninguna llamada ni nada para que se ejecute, que se haga automaticamente desde que el usuario 100 puso su nº.

Gracias.
  #2 (permalink)  
Antiguo 14/04/2011, 10:26
Avatar de humbero12  
Fecha de Ingreso: abril-2009
Ubicación: Cereté, Colombia
Mensajes: 53
Antigüedad: 15 años
Puntos: 4
Respuesta: Ejecutar una hora más tarde código.

Disculpa si estoy mal pero en realidad no entiendo muy bien la pregunta pero puedo saber lo que quieres hacer.

Tu quieres que un usuario al ingresar un primer registro de ahí empieza a contar 10 min para que ingrese los registro que el quiera cuando se cumpla ese tiendo muestre el resultado automático.

Es eso lo que quiere?, sino explícame un poco mas para ayudarte
__________________
Sigueme en twitter @humbero12
Blog #cazacontenidos
  #3 (permalink)  
Antiguo 14/04/2011, 11:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Ejecutar una hora más tarde código.

Si humbero te explico, perdón por no haberme explicado bien.
Mi problema es un problema de manejo de tiempo en php digamos que lo que quiero
es que un nº de usuarios estan rellenando un formulario bastante extenso
bueno y yo en mi algoritmo llegue a la conclusión de que me convenia hacerlo dinámico es decir:
Que no quiero que se registren 100 personas, sino minimo 100 y luego hay un tiempo extra por ej. 15 minutos para finalizar el registro.
Si quieres te lo explico con más detalle pero esa no es mi pregunta.

El caso es que una vez que estan las 100 personas registradas con sus datos voy a dar un tiempo extra para que a los ultimos usuarios que no les ha dado tiempo a completar el formulario lo completen, no quiero limitarlo a un nº fijo ya que no quiero que un usuario ponga una serie de datos y luego le aparezca registro completado refresh.
Es decir al cabo de 15 minutos tendré 100,108,115,157 no sé sabe el nº de personas registradas.

Luego yo necesito realizar calculos con esos datos para ello tendria que llamar a un archivo o una funcion o un código por ej. calculate.php

El problema que tengo llamar a ese código calculate.php de manera automatica es decir justo 15 minutos después de que el usuario 100 haya puesto sus datos, uno de ellos es el tiempo de registro quiero decir que seria tan simple como obtener con un query el tiempo del usuario de 100 y sumarle 15*60 segundos.
Pero mi problema es a la hora de la ejecución ya que lo que yo quiero es que se haga automaticamente o sea quiero que todos los usuarios tengan acceso al dato que ha sido calculado 15 minutos más tarde del usuario 100.
por ej. que lo visualizen instantaneamente a traves de un grafico.
  #4 (permalink)  
Antiguo 14/04/2011, 12:36
 
Fecha de Ingreso: febrero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Ejecutar una hora más tarde código.

creo que lo que stoy buscando es algo como crom.
No me importa molestarme en aprenderlo de todas formas en mi server hay un cpanel de crom
muy intuitivo y me da que es para fechas o horas fijas quiero decir que no sé si puede hacer un query para hallar una hora distinta y hacer el crom varias veces al dia.
Por ej. crom sirve para programar todos los dias 8pm ejecuta esto...
Pero no para ejecuta SELECT time FROM table... a esa hora.

??
  #5 (permalink)  
Antiguo 14/04/2011, 12:57
 
Fecha de Ingreso: noviembre-2009
Mensajes: 226
Antigüedad: 14 años, 4 meses
Puntos: 19
Respuesta: Ejecutar una hora más tarde código.

Bueno, puedes programar el CRON para que cada hora ejecute un determinado script PHP, que lea o haga lo que sea en la BBDD :D

Un saludo
__________________
Mi blog: magdkudama.com

Mi clase de validación de datos: magdkudama.com/validation
  #6 (permalink)  
Antiguo 14/04/2011, 13:14
 
Fecha de Ingreso: febrero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Ejecutar una hora más tarde código.

Bueno me imagine que estaba en la web me lanze a preguntarlo pues queria hacerlo hoy ya k n semana santa no puedo programar... asi k lo haré más tarde


Pero he encontrado como sé hace:
http://php.bigresource.com/Track/php-vevcwD4Q/


Básicamente es tan simple como poner
un script php:

if (time>=my_time){
code...

//ejecutar once.
}
El codigo sencillamente lo sabia, lo que no sabia yo es como llamarlo pues bien la respuesta es que lo puedes llamar cada segundo con el cron aunque pensandolo un poco creo que igual afecta al rendimiento del servidor, o llamarlo cada 30 segundos todo el rato por ej.
y si ha pasado los 15 minutos (en este caso oscilaria entre 15min 0 seg y 15 min 30 seg)
ejecutarlo.
Al fin y al cabo son 120 llamadas por hora las cuales muchas de ellas no se ejecutaria asi que tampoco creo k sobrecargue ni nada.
No sé creo que está bien planteado pero no he tenido tiempo de analizarlo.
¿Cómo lo véis?

Etiquetas: Ninguno
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 04:42.