У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Вопрос по датам в базе
-
Скрипт получает текущее время
[[AAA]] = Date.now()
AAA = 1581969383164
если распарсить то получим PARSED_DATE: 2020-02-17 19:56:23 UTC
хотя на самом деле 22.56.23Беру из базы строки у которых в поле nexttime значение раньше чем [[AAA]], все подбирается корректно. У меня только один вопрос, почему если число преобразовывать во время, то оно не корректно? Разница в часовых поясах откуда, если и база и скрипт на одном компе...
Я почему спрашиваю, просто нужно резервировать строки на пол часа, вот маюсь, в поле резерва ставить просто int или date