PHP-скрипт делает мой сайт недоступным для этого пользователя
Меня совсем недавно попросили разработать PHP-приложение, которое позволяет осуществлять массовую рассылку по электронной почте. Для этого у меня есть PHP-скрипт, который просто берет адреса электронной почты из базы данных MYSQLD и просматривает их, персонализируя каждый из них, а затем отправляет их.
Это работает абсолютно нормально, однако у нас есть небольшая проблема в том, что пока этот PHP-скрипт запущен (и, очевидно, для его запуска требуется несколько минут), пользователь не может ничего больше делать в приложении. Другие люди могут получить доступ это, но пользователь, о котором идет речь, не может загрузить какую-либо другую страницу приложения во время отправки электронных писем.
Есть ли какой-то способ справиться с этим или это просто то, с чем нам придется жить?
4 answers
В этом случае у пользователя открыт сеанс на странице, которая в данный момент обрабатывает PHP-страницу. Из-за этого пользователь не может открыть (в том же сеансе) другую страницу на том же сайте.
Способ справиться с этим - инициировать этот процесс пользователем, но не позволяйте сценарию, к которому обращается пользователь, отправлять электронные письма. Вы могли бы, например, составить список "задач" в базе данных и позволить cronjob обработать его. Таким образом, пользователь все еще может посещать другие страницы.
Убедитесь, что к вашему долго работающему сценарию не применены сеансы.
В основном выполняется php-скрипт, а затем страница отправляется клиенту. Таким образом, это нормально, что посетитель застрял на странице во время выполнения скрипта.
Взгляните на cronjobs для таких задач.
Вы ознакомились с заданием для друзей и учебным пособием