Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/03/2010, 17:41
Devjunx
 
Fecha de Ingreso: diciembre-2009
Mensajes: 28
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: ¿Existe forma de evitar que una página se ejecute más de una vez al mismo

Entonces según este código:
Código:
class lock
{
 
 
	var $file;
	var $time_limit = 600;
	function lock( $file )
	{
		if ( !is_writable(dirname( $file  )) )
			die("directory is not writable");
		$this->file = $file;
	}
 
	function exits_lock()
	{
		if ( !is_file( $this->file )  )
		{
			touch( $this->file  );
			return false;
		}
		else
		{
			// Check the time of lock
			$time=@filemtime( $this->file  );
		        if($time && ($time<=(time()- $this->time_limit )))
			{
		                touch( $this->file );
				return false;
 
		        }
		        else
			{
				return true;           		
		        }
		}		
 
	}
 
	function __destruct()
	{
		unlink( $this->file );
	}
 
}

$mylock = new lock("data.lock");
 
if ( $mylock->exits_lock()  )
	die("app running");
 
sleep(5);
En que parte va mi codigo?, me parece al final, corriganme si me equivoco, y como hago para eliminar el look?? al terminar el proceso? y como modificar este código para que no tenga que esperar, sino que simplemente no haga nada ya que el cron es el que se encarga de la ejecución y pienso yo que si se pone a esperar va a "chocar" con los otras ejecuciones que vienen tras el y se sobrecargará el servidor.

Esa parte de: var $time_limit = 600; es lo supongo que hace esperar la ejecucion o el sleep(5);, pero yo no deseo que espere, solo que no haga nada si se encuentra bloqueado, como podria modificar este codigo?

Disculpen si no se mucho de php pues estoy aprendiendo recien ;)

Saludos