Запуск скрипт и закрытие соеденения

Discussion in 'PHP' started by Doom123, 25 May 2012.

  1. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Вобщем нужен способ запустить скррипт не дожидаясь его выполнения ..

    такой способ не катит

    PHP:
    $fp fsockopen($_SERVER['HTTP_HOST'],80);
    if (
    $fp) {
                
    $out "GET 'starter.php HTTP/1.1\r\n";
                
    $out .= "Host: ".$_SERVER['HTTP_HOST']."\r\n";
                
    $out .= "User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n";
                
    $out .= "Connection: Close\r\n\r\n";
                
    fwrite($fp$out);
                
    fclose($fp);
    }
    если попробовать запустить несколько раз подряд то запускается через раз..
     
    #1 Doom123, 25 May 2012
    Last edited: 25 May 2012
  2. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Поставить таймаут на сокет(чтение\запись), асинхронный сокет по определенному событию убить скрипт?
     
  3. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Сори я хреного описал =) Есть скрипт который выполняет определённые действия ..
    мне нужно его запустить его и закрыть соеденение не дожидаясь когда скрипт выполнится. в скрипте прописаны дерективы
    Code:
     ignore_user_abort(true);
     set_time_limit(0);
    
     
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Doom123 вы понимаете, что при подобном запуске - вы засираете очередь апача или php-fcgi?

    Чем вам не нравится запускать скрипт так:
    Code:
    system('php starter.php 2>&1 1>/dev/null &');
     
    _________________________
    1 person likes this.
  5. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    ладно обьесню по другому... есть система wordpress когда человек постит новость идёт рассылка новости по соц сетям... НО! человек не должен ждать пока пройдёт рассылка..
    поэтому запускаются скрипты которые при заверешении рассылки закрываются..

    а запуск через system не удобна т.к не у всех хостеров разрешена..

    Если есть советы как это лучше сделать напишите буду рад выслушать.
     
  6. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Кому интересно вот решение
    PHP:
     $fp fsockopen($_SERVER['HTTP_HOST'],80); 
    if (
    $fp) { 
                
    $out "GET 'starter.php HTTP/1.1\r\n"
                
    $out .= "Host: ".$_SERVER['HTTP_HOST']."\r\n"
                
    $out .= "User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n"
                
    $out .= "Connection: Close\r\n\r\n"
                
    fwrite($fp$out);
    sleep(1); 
                
    fclose($fp); 
    }  
     
  7. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Doom123 запуск демона или cron. Но такое решение - костыль
     
    _________________________
  8. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Gifts когда речь идёт о продукте который будут использовать много людей на разных хостах с разным уровнем знаний это единственое решение к сожалению =\\
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Doom123 нет, это одно из решений, которое не гарантирует работы. Что произойдет со скриптом с allow_url_fopen=off? В случае неопределенного клиента - следует предлагать несколько решений.
     
    _________________________
  10. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Работа с сетью должна быть полюбому т.к использутся cUrl и по этой причине в требованиях нужно указать при каких условиях будет работать скрипт .. и для того чтоб узнать соответсвуют ли настройки сервера требованиям нужно всеголишь спросить у хостера.