Я выполнил скрипт 8 раз одновременно с разных вкладок в веб-браузере. Каждая вкладка была настроена в параметрах для отправки 2000 электронных писем, так что 2000 электронных писем * 8 вкладок = 16000 электронных писем, отправленных одновременно, выполняя один и тот же скрипт 8 раз. Мое обоснование состояло в том, что 8-ядерный 16-поточный процессор, который у меня есть, должен быть в состоянии обрабатывать это и отправлять 16000 электронных писем быстрее, чем если бы я отправлял их все, выполняя свой сценарий один раз.
Из журналов только 5 из 8 казней могут выполняться одновременно. Когда один из первых 5 финишировал, начался шестой. Когда остальные из первых 5 финишировали, начались седьмое и восьмое. Так что, по крайней мере, я знаю, что не нужно запускать больше 4. Когда запущено 5, я отправил 10000 писем за 463 секунды.
Мой скрипт работает таким образом, что каждые 100 успешно отправленных писем я записываю приращение в база данных.
Веб-сайт вышел из строя, когда у меня было это в базе данных:
`emails`.`id`: 35 --> `emails`.`sent`=1300
`emails`.`id`: 34 --> `emails`.`sent`=1300
`emails`.`id`: 33 --> `emails`.`sent`=1400
`emails`.`id`: 32 --> `emails`.`sent`=1400
`emails`.`id`: 31 --> `emails`.`sent`=1400
Когда веб-сайт вернулся снова, первое, что я увидел, было:
`emails`.`id`: 38 --> `emails`.`sent`=200
`emails`.`id`: 37 --> `emails`.`sent`=200
`emails`.`id`: 36 --> `emails`.`sent`=300
`emails`.`id`: 35 --> `emails`.`sent`=2000
`emails`.`id`: 34 --> `emails`.`sent`=2000
`emails`.`id`: 33 --> `emails`.`sent`=2000
`emails`.`id`: 32 --> `emails`.`sent`=2001
`emails`.`id`: 31 --> `emails`.`sent`=2001
В конце концов, я успешно отправил ~ 8000 писем:
`emails`.`id`: 38 --> `emails`.`sent`=2000
`emails`.`id`: 37 --> `emails`.`sent`=2000
`emails`.`id`: 36 --> `emails`.`sent`=1999
`emails`.`id`: 35 --> `emails`.`sent`=2000
`emails`.`id`: 34 --> `emails`.`sent`=2000
`emails`.`id`: 33 --> `emails`.`sent`=2000
`emails`.`id`: 32 --> `emails`.`sent`=2001
`emails`.`id`: 31 --> `emails`.`sent`=2001