Если Вы используете PHP-fpm, Вам доступна очень удобная возможность выполнять код асинхронно. Функция fastcgi_finish_request() позволяет отправить Web серверу ответ без остановки самого PHP скрипта.
Т.е. выполнение программы никак не изменяется, а сама функция сбрасывает буфер вывода и закрывает соединение с Web сервером. Сервер в свою очередь все это шлет клиенту. Удобная возможность выполнить медленные операции на фоне без существенных изменений в программе.
Чтобы использовать возможность фонового окончания PHP программы, необходимо, чтобы она имела такую структуру выполнения:
Иногда, если пользователю необходимо показать результат какой-то очень медленной операции, лучше разделить ее на части. Например, при загрузке и преобразовании видео-ролика:
Отправка почты часто может занимать несколько секунд. В классическом случае, пользователь должен будет подождать это время, пока не увидит ответ:
$to = $_POST['email']; if ( $to ) { mail($to, 'Подтверждение', 'Это Ваш ящик?'); echo 'Подтверждение было отправлено на почту'; } else { echo 'Вы не ввели все необходимые данные'; }
Если человек введет email, ему придется ожидать пока письмо будет отправлено
Используя fastcgi_finish_request() можно легко превратить этот код в быстрый:
$to = $_POST['email']; if ( $to ) { echo 'Подтверждение было отправлено на почту'; fastcgi_finish_request(); mail($to, 'Подтверждение', 'Это Ваш ящик?'); } else { echo 'Вы не ввели все необходимые данные'; }
После вызова fastcgi_finish_request() посетитель сразу увидит ответ от сервера
Если Вы используете сессии, их необходимо закрывать перед использованием этой функции:
... session_write_close(); fastcgi_finish_request();
Самое важное
Простой механизм асинхронной работы с помощью fastcgi_finish_request() поможет значительно ускорить ответ сайта без необходимости его оптимизации.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…