Ejecutar evento cada cierta cantidad de tiempo

Hola necesito ayuda para realizar lo siguiente:
Luego de realizar una consulta a la base de datos de acuerdo a lo que me devuelva una funcion determinada mande un mail, el tema que la consulta es una comparacion entre fechas, necesito que cada dia se ejecute automaticamente esa consulta… esuve mirando y en el foro hablaron del tema, pero yo no lo consigo hacer…

lo que el usuario mbarreda realizo es lo siguiente:
Extender el CI y dentro

function extender_objeto_js()
	{
		echo "
		//---- Eventos ---------------------------------------------
		window.setInterval('location.reload()',5000); //milisegundos, 5*1000
		";
	}

hice lo mismo solo que cambiando el nombre de la funcion y nada… este es mi codigo:

function extender_objeto_js()
	{
		echo "
		//---- Eventos ---------------------------------------------
		window.setInterval('diferencia_entre_fecha()',10000); //milisegundos, 5*1000
		";
	}

Desde ya muchas gracias

Hola Nestor,

el tema es el siguiente, el comportamiento que necesitaba Martin era para una interaccion con el usuario. Vos lo que necesitas pareciera ser algo mas ‘desconectado’, tiene toda la pinta de algo que deberia estar puesto en el cron o el Programador de Tareas de Win.

Creo que esto te puede ayudar en lo que buscas:

http://repositorio.siu.edu.ar/trac/toba/wiki/Referencia/Solicitud#SolicituddeConsola

Saludos

Hola richard, gracias por contestar, te cuento que fui al repositorio y segui los pasos para ejecutar una operacion por consola, pero me tira error, este es el error que me tira la consola:

Microsoft Windows [Versión 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Users\Elias>entorno_toba_2.1
Entorno cargado.
Ejecute 'toba' para ver la lista de comandos disponibles.

C:\Users\Elias>toba item ejecutar -p Cosechas -t diferencia_entre_fecha -u toba
exception 'toba_error_seguridad' with message 'Error Interno' in C:\toba_2.1.0\p
hp\nucleo\componentes\toba_cargador.php:237
Stack trace:
#0 C:\toba_2.1.0\php\nucleo\componentes\toba_constructor.php(37): toba_cargador-
>get_metadatos_extendidos(Array, 'toba_item')
#1 C:\toba_2.1.0\php\nucleo\componentes\toba_constructor.php(22): toba_construct
or::get_runtime_clase_y_datos(Array, 'toba_item', false)
#2 C:\toba_2.1.0\php\nucleo\toba_nucleo.php(140): toba_constructor::get_runtime(
Array, 'toba_item')
#3 C:\toba_2.1.0\php\consola\comandos\comando_item.php(28): toba_nucleo->acceso_
consola('desarrollo', 'Cosechas', 'diferencia_entr...')
#4 C:\toba_2.1.0\php\consola\comando.php(60): comando_item->opcion__ejecutar(NUL
L)
#5 C:\toba_2.1.0\php\consola\comando.php(54): comando->ejecutar_opcion('opcion__
ejecuta...', NULL)
#6 C:\toba_2.1.0\php\consola\consola.php(74): comando->procesar()
#7 C:\toba_2.1.0\php\consola\consola.php(51): consola->invocar_comando('item', A
rray)
#8 C:\toba_2.1.0\php\consola\run.php(25): consola->run(Array)
#9 {main}

Saludos

Hola Nestor,

te hago una consulta, en la edicion de la operacion… que tenes en el item que dice ‘Tipo Operacion’?. Pareciera que esta tratando de levantar una operacion con componentes mediante consola, eso no se puede.

Saludos

aaa… entonces no existe la manera de ejecutar una operacion automaticamente cada cierta cantidad de tiempo o el primero de cada mes??
la operacion que intento ejecutar es la siguiente, existiria alguna manera de ejecutarla una vez por dia??

function diferencia_entre_fecha(){
	    $result = consultas_cosechas::diferencia_fecha();
	    if (! empty($result)) {
			foreach ($result as $chacra) {
			$asunto = 'Cosecha';
							$cuerpo_mail =	'<p>Chacra: ' .$chacra['nombre']. '
 
											 Codigo: ('.$chacra['codigo'].')
'
											.'Se cosecho la fecha '.$chacra['fecha_cosecha']. ', con lo que hasta hoy '.$chacra['fecha_actual'].' han transcurrido '.$chacra['diferencia']. ' dias 
'.
											'</p>';

							$email = 'mail1@mail1.com';
							$email2 = 'mail2@mail2.com';
							$email3 = 'mail3@mail3.com';
														
							try {
								
								$this->enviar_primer_mail($asunto, $cuerpo_mail, $email);
								$this->enviar_segundo_mail($asunto, $cuerpo_mail, $email2);
								$this->enviar_tercer_mail($asunto, $cuerpo_mail, $email3);
																								
							} catch (toba_error $error) {
								$chupo = $error->get_mensaje_log();
								toba::notificacion()->agregar('Verifique la conexion de internet para poder enviar el mail', 'info');
													
							}
							
			}
			unset($chacra);
			
		}
   
     }

muchas gracias por la ayuda.
saludos

Hola Nestor,

si se puede ejecutar una tarea de manera predeterminada a intervalos de tiempo, el problema creo que esta en como tenes configurada la operacion.

La paradoja esta en que necesitas ejecutar un proceso batch… pero pareciera que tenes configurada la operacion para que plantear una interaccion con el usuario, la cual no existe.

Podrias adjuntarme una captura de como esta configurado el item?

Saludos

Te comento que realice un .bat para ejecutarlo con el administrador de tareas de win, en el .bat esta definido que abra la aplicacion en el browser y se ejecute mi funcion con el evento window.onload, pero tampoco funciona.
Disculpa mi ignorancia pero a que t referis con la captura del item, de que item hablas?