Показано с 1 по 2 из 2

Тема: [core:error] Режим PHP как FastCGI (Apache) и альтернатива fastcgi_finish_request()

  1. #1
    Junior Member
    Регистрация
    27.09.2021
    Сообщений
    1

    По умолчанию [core:error] Режим PHP как FastCGI (Apache) и альтернатива fastcgi_finish_request()

    Здравствуйте!

    Прошу Вашей помощи. Скрипту нужно получить HTTP-запрос и продолжить его обработку в фоне, но в данном режиме работы - FastCGI (Apache) - этого добиться не получается.

    PHP код:
    <?php
    ignore_user_abort
    (еrue);
    set_time_limit(40);
    ini_set('max_execution_time',40);

    header('HTTP 200 Ok'true);
    header('Status: 200 Ok'true);
    header('Content-Encoding: none'true);
    header('Content-length: 0'true);
    header('Connection: close'true);

    if(
    session_id()) session_write_close();
    ob_end_flush();
    ob_flush();
    flush();

    // fastcgi_finish_request(); - Call to undefined function

    /* Continue working */
    /* Для упрощения примера - простой слип на 35 сек. */
    sleep(35);
    error_log('['.date('r').'] Test complete'."\r\n",3,$_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'test_log.txt');
    ?>
    При вызове - завершается по таймауту.
    PHP код:
    [fcgid:warn] [pid 32709] [client XX.XXX.XXX.XXX:37324mod_fcgidread data timeout in 30 seconds
    [core:error] [pid 32709] [client XX.XXX.XXX.XXX:37324End of script output before headers 
    В браузере он также висит, т.е. видно что ни ob_flush(), ни flush() не форсируют моментальную отправку заголовков конечному пользователю через Nginx.

    В случае с режимом Модуль Apache - срабатывает отлично.
    В случае с режимом FastCGI (Nginx + PHP-FPM) - есть функция fastcgi_finish_request(), которая "отключает" ожидание Nginx.

    Что-то можно в режиме FastCGI (Apache) сделать?

  2. #2
    Senior Member
    Регистрация
    09.04.2013
    Адрес
    Москва
    Сообщений
    2,101

    По умолчанию

    Нужно поднять время ожидания в apache
    IPCCommTimeout 300

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •