Sleep на php тормозит работу всего приложения, php?
Всем привет.
Создаю приложение по отправки email рассылки для сайта подписчикам.
Загружаю, к примеру 100 адресов, и после каждой отправки письма делаю sleep(1). Сам скрипт запускается через ajax. Я в него передаю id рассылки и там уже идет рассылка.
И на эти 100 секунд тормозится работа приложения. То есть остальные вкладки подвисают на время рассылки, как это избежать?
тормозит только у вас в браузере т.к. висит "процесс загрузки" вашего сайта, другие табы не открываются в это время.
С чем это связано не гуглил и почему, но так работает хром по крайней мере.
зайдите с другого браузера там все откроется.
Александр Аксентьев, а как можно сделать, что бы письма рассылались с определенной скоростью. Я ничего кроме как sleep не знаю даже?
И как сделать, что бы сайт не зависал?
ОТправляю письма через цикл while.
Александр Аксентьев: у меня сама рассылка запускается на другом файле, в который передаю через ajax один параметр. И все. туда никто не попадает на эту страницу. Если я вас правильно понял!
Андрей Николаев: Согласен, правильнее всего поднять свой почтовый сервер с правильно настроенным DNS, SPF, DKIM, DMARK и рассылать только персонализированные сообщения с предварительного явно выраженного согласия пользователя. Но ведь гораздо проще использовать mail() в PHP, а потом сидеть и ломать голову, почему явно спаммерские письма с неправильно сформированными заголовками ни до кого не доходят.
Очень тонкий момент и зависит от того кто у вас передает соединение на php. Например при apache prefork тормозит родительский процесс (т.е. если зайти из инкогнито то попадете на другой процесс, если он свободен). Но такой штукой вы можете загрузить все дочерние процессы родительского и не работать будет у всех