PHP-скрипт делает мой сайт недоступным для этого пользователя


Меня совсем недавно попросили разработать PHP-приложение, которое позволяет осуществлять массовую рассылку по электронной почте. Для этого у меня есть PHP-скрипт, который просто берет адреса электронной почты из базы данных MYSQLD и просматривает их, персонализируя каждый из них, а затем отправляет их.

Это работает абсолютно нормально, однако у нас есть небольшая проблема в том, что пока этот PHP-скрипт запущен (и, очевидно, для его запуска требуется несколько минут), пользователь не может ничего больше делать в приложении. Другие люди могут получить доступ это, но пользователь, о котором идет речь, не может загрузить какую-либо другую страницу приложения во время отправки электронных писем.

Есть ли какой-то способ справиться с этим или это просто то, с чем нам придется жить?

Author: ProgramFOX, 2011-10-26

4 answers

В этом случае у пользователя открыт сеанс на странице, которая в данный момент обрабатывает PHP-страницу. Из-за этого пользователь не может открыть (в том же сеансе) другую страницу на том же сайте.

Способ справиться с этим - инициировать этот процесс пользователем, но не позволяйте сценарию, к которому обращается пользователь, отправлять электронные письма. Вы могли бы, например, составить список "задач" в базе данных и позволить cronjob обработать его. Таким образом, пользователь все еще может посещать другие страницы.

 2
Author: Rene Pot, 2011-10-26 13:59:47

Убедитесь, что к вашему долго работающему сценарию не применены сеансы.

 1
Author: Matthew, 2011-10-26 13:58:47

В основном выполняется php-скрипт, а затем страница отправляется клиенту. Таким образом, это нормально, что посетитель застрял на странице во время выполнения скрипта.

Взгляните на cronjobs для таких задач.

 1
Author: dkg, 2011-10-26 14:00:29
 1
Author: locrizak, 2011-10-26 14:09:47