@kirill-93

От чего зависит максимальное количество асинхронных запросов и можно ли таким образом отправлять почту?

Добрый день!
Есть порядка 120 тысяч email адресов посетителей. Раз в месяц делаем рассылку через сендгрид. По началу делал на php и вся рассылка занимала 8-10 часов. Затем переписал код на nodejs и теперь из-за асинхронности, вся рассылка происходит за 20-30 минут.
У меня несколько вопросов:
1) Как я понимаю, в отличие от реализации на php, код на nodejs отправляет запросы и не дожидается ответа. Ответ приходит асинхронно. Но на что тогда тратятся 30 минут? На установку соединения и отправку запроса? То есть асинхронность только в том, что мы не дожидаемся ответа?
2) От чего зависит скорость отправки? Вот у меня 120 000 отправляются за 30 минут. Можно ли это ускорить?
3) Правильно ли так отправлять почту? По данным из личного кабинета сендгрида следует, что вроде бы все письма отправились, но меня смущает интенсивность запросов. Хотя про лимиты на обрещения я у них нигде не нашел информации.

Спасибо.
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Как можно обсуждать различия реализации если ни одну из двух реализаций не видим.
Но все равно у вас в обоих случаях работает один процесс и шлет по очереди. И работает это медленно.

Гуглите Gearman/Beanstalkd/RabbitMQ
Если поднять несколько воркеров для отправки, то скорость увеличится в N раз.
Обычно по количеству ядер/потоков процессора на сервере.

Если отправлять пачками, то еще быстрее будет, там и воркеры можно не поднимать будет даже, зависит уже от реализации рассылки конкретно.
Ответ написан
@vshvydky
https://nodejs.org/api/cli.html#cli_uv_threadpool_... попробуй поиграть с этим параметром, по идее все сетевые коммуникации идут на слое си и выполняются в тредах либюв, по дефолту их всего 4, расширяется до 1024
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 80 000 до 120 000 ₽
Яндекс Москва
от 100 000 до 300 000 ₽
Plesk Новосибирск
от 90 000 до 150 000 ₽
06 авг. 2020, в 13:53
8000 руб./за проект
06 авг. 2020, в 13:52
700 руб./за проект