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

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

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

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

Ответы [ 4 ]

2 голосов
/ 26 октября 2011

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

Один из способов справиться с этим - инициировать этот процесс пользователем, но не разрешать скрипту, к которому обращается пользователь, отправлять электронные письма. Например, вы можете создать список «задач» в базе данных и позволить cronjob обработать его. Таким образом, пользователь все еще может посещать другие страницы.

1 голос
/ 26 октября 2011

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

Посмотрите на cronjobs для таких задач.

1 голос
/ 26 октября 2011

Вы взглянули на cronjob и учебник

1 голос
/ 26 октября 2011

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

...