Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
ALEXU90
0 / 0 / 0
Регистрация: 06.12.2017
Сообщений: 9
#1

Рассылка большого количества писем и ограничения хостера - PHP

06.04.2018, 07:55. Просмотров 139. Ответов 3
Метки нет (Все метки)

Всем привет.

Ребят, возникла такая проблема.
Когда писем рассылалось относительно не много, то все было нормально, сейчас количество писем вырасло до ~50к.
Хостер тал слать нотисы предупрежедения, да и сервер начал тормозить, так как большое количество писем стоит в очереди. Приходится чистить или ждать пока все уйдет...

Встала задача делать отправку частями - это не сложно. Просто по крону дергать по определенному количеству писем из БД и менять потом у них статус, в следующий промежуток времени так же дергать и менять статус....
Но, тут все дело в том, что рассылку нужно сделать максимум за 1,5-2 суток, чтобы человек мог до определенной даты получить письмо, но и втоже время не сильно рано, чтобы не забыл потом.

А как сделать по секундам? Например, каждые 2-5 секунд слать по письму?
Кроме sleep, к сожалению, в голову ничего не пришло.
Я не настолько хорошо знаю как это будет работать со стороны сервере. Не будет ли это вешать сервер, если вдруг какой-то затык будет с чем-то и эти слипы станут в очереди какой-нибудь. Или тупо незавершиться одна задача каким-то образом и в очередь встанет другая...

Что можно придумать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2018, 07:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Рассылка большого количества писем и ограничения хостера (PHP):

Отправка большого количества писем через SMTP
Здравствуйте. Есть такая задачка предположим у меня база майлов юзеров которые...

Рассылка писем клиентам
Имею базу клиентов около 200000. Появилась необходимость оповестить их о новых...

Рассылка писем по расписанию
Здравствуйте! Имеются шаблоны писем которые должны отправляться допустим каждую...

Рассылка писем средствами mail()
Привет, народ. Вопрос данный в первую очередь адресуется тем, кто имел опыт...

Избавиться от большого количества обработчиков
Господа, есть такая проблема... Имеется главный index.php файл, он же...

Парсинг большого количества страниц
Есть такой вопрос..возможно ли парсить одновременно около 1000 страниц?

3
ytf
199 / 212 / 174
Регистрация: 15.08.2017
Сообщений: 1,181
07.04.2018, 13:13 #2
Цитата Сообщение от ALEXU90 Посмотреть сообщение
Кроме sleep, к сожалению, в голову ничего не пришло.
мне тоже
0
Jodah
Эксперт PHP
2704 / 2376 / 1013
Регистрация: 01.08.2012
Сообщений: 8,405
07.04.2018, 13:53 #3
Если письма не именные, можно отправить письмо сразу нескольким адресатам, добавляя их в скрытую копию.

Если именные - можно сделать аналогично, выбирая юзеров с одинаковыми именами (если в БД есть отдельное поле с именем).
0
ALEXU90
0 / 0 / 0
Регистрация: 06.12.2017
Сообщений: 9
07.04.2018, 16:05  [ТС] #4
Именные письма.

Пока нашел решение типа (может кому пригодится)
Код
set_time_limit(60);
$start = time();

for ($i = 0; $i < 59; ++$i)
{
	echo date("H:i:s").'<br>';
	time_sleep_until($start + $i + 5);
}
И еще
Код
$duration = 60;
$sleep = 5;

for ($i = 0; $i < floor($duration / $sleep); ++$i)
{
	$start = microtime(true);

	echo date("H:i:s").'<br>';

	time_sleep_until($start + $sleep);
}
В целом вроде норм. Не знаю, надо проверять как будет работать. Крон будет проходить каждую минуту.
Другого варианта не вижу пока.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2018, 16:05
Привет! Вот еще темы с решениями:

Редактирование большого количества таблиц
Здравствуйте. Стоит такая задача: нужно где-то держать данные таблицы, и при...

Хранение большого количества файлов и быстрый доступ к ним
мне надо хранить загружаемые файлы чтобы доступ к любому файлу был очень...

Как убрать приписку от хостера при отправке mail()?
Когда отправляю сообщение через mail() то приходит от кого вот так: &quot;Новый...

Рассылка большого количества писем. Как правильней реализовать?
Всем привет! У меня такая задача: есть сайт с клиентской базой и каждому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru