Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2016
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.494
Poder: 21
MAXIUM Va camino a la fama
Evitar el 504 Gateway Time-out

Hola a todos.

Tengo el siguiente problema y quiero saber si tiene solución o mejor modo de tratar.

Tengo un archivo PHP en un web hosting externo que ejecuta algo y comienza por:

Código PHP:
<?php
    set_time_limit
(0);
...
El proceso debería durar varias horas, sin embargo me arroja ese error a los minutos.

La otra consulta es:

Para ejecutar dicho proceso, abro el archivo desde un navegador web en otro equipo. ¿Existe forma de darle la orden de ejecutar el PHP y que quede procesando sin necesidad de tener que abrir algo y mantenerlo así hasta que finalice?

Si me explique mal, me avisan
Responder Con Cita
  #2  
Antiguo 16-12-2016
Luis F. Orjuela Luis F. Orjuela is offline
Miembro
 
Registrado: may 2003
Ubicación: Bogotá - Colombia
Posts: 68
Poder: 22
Luis F. Orjuela Va por buen camino
Con todo respeto. Pero..... este es un foro de Delphi? o algo pasa con mi computador........
__________________
Ing. LUIS FERNANDO ORJUELA
BOGOTA - COLOMBIA
Responder Con Cita
  #3  
Antiguo 16-12-2016
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola..

Luis, es un foro de Delphi, pero esta es una sección para dudas relacionadas a PHP.


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #4  
Antiguo 17-12-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Luis F. Orjuela Ver Mensaje
Con todo respeto. Pero..... este es un foro de Delphi? o algo pasa con mi computador........
Como dice maeyanes, si revisas el listado de foros notarás que abarcamos muchos temas además de Delphi

LineComment Saludos
Responder Con Cita
  #5  
Antiguo 17-12-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por MAXIUM Ver Mensaje
¿Existe forma de darle la orden de ejecutar el PHP y que quede procesando sin necesidad de tener que abrir algo y mantenerlo así hasta que finalice?
Sí, desde luego no es adecuado ejecutar un script que va a durar horas y esperar que el navegador no proteste o que el proceso no se interrumpa. Puedes ejecutar el script directamente desde la terminal:

Código:
$ /usr/local/php/bin/php script.php
suponiendo que el ejecutable de php está en esa ruta. O bien, puedes arrancar el proceso desde la web (con un script lanzador) pero mandándolo al background. Aquí te pongo una clase muy sencilla que uso para eso:

Código PHP:
class BgProcess
{
    const 
FMT_COMMAND "%s %s > %s 2>&1 & echo $!";

    public function 
__construct($command$output '/dev/null') {
        
$this->command $command;
        
$this->output $output;
    }

    public function 
execute() {
        
$params implode(' 'func_get_args());
        return 
shell_exec(sprintf(self::FMT_COMMAND$this->command$params$this->output));
    }

La forma de usarla sería así:

Código PHP:
$bgprocess = new BgProcess('/usr/local/php/bin/php script.php');
$bgprocess->execute(); 
Si requieres pasarle parámetros al script, lo haces en el método execute. Sólo recuerda que, en tu script, esos parámetros los vas a leer en el arreglo $argv ya que son parámetros en la línea de comandos. Al ejecutar php de esta forma no tienes los arreglos $_GET y $_POST como cuando lo haces desde la web.

Cuando llamas al método execute, el flujo regresará de inmediato a la siguiente línea y así podrás terminar el script lanzador y cerrar el navegador mientras en el servidor se continúa ejecutando script.php.

Esto funciona en Unix/Linux. No sé en Windows.

LineComment Saludos
Responder Con Cita
  #6  
Antiguo 17-12-2016
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.494
Poder: 21
MAXIUM Va camino a la fama
Excelente. Muchas gracias Roman
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
sms Gateway o sms Server lpedrazzi Varios 1 05-05-2010 10:26:32
Time yoennis Varios 4 26-01-2009 23:21:42
Cambiar Gateway en varios equipos drykea Windows 3 13-06-2007 14:38:10
Dir IP, Mask y Gateway yorki Internet 3 12-10-2006 18:59:48
net time matrics Varios 1 17-11-2003 15:48:37


La franja horaria es GMT +2. Ahora son las 01:25:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi