У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Вопрос по sms activate
-
@bablouser
Ох, спасибо большое, пояснил так пояснил, а если мне надо просто"1 - сообщить о готовности номера (смс на номер отправлено)" это вообще как тогда, по идее же не надо тогда писать $service, $forward, $operator, $ref, $country?
Заранее спасибо
Выходит по идее http://sms-activate.ru/stubs/handler_api.php?api_key=нашапи&action=setStatus&status=1&id=$id&forward={{PHONE_NUMBER}}
Но как получить id не делая это самим, ибо на этот запрос выходит bad_status -
@redbeard
в документации же все естьhttp://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getStatus&id=$id$api_key - ключ АПИ
$id - id активации
Ответы сервиса:
STATUS_WAIT_CODE - ожидание смс
STATUS_WAIT_RETRY:$lastcode - ожидание уточнения кода (где $lastcode - прошлый, неподошедший код)
STATUS_WAIT_RESEND - ожидание повторной отправки смс (софт должен нажать повторно выслать смс и выполнить изменение статуса на 6)
STATUS_CANCEL - активация отменена
STATUS_OK:$code - код получен (где $code - код активации)Возможные ошибки:
NO_ACTIVATION - id активации не существует
ERROR_SQL - ошибка SQL-сервера
BAD_KEY - Неверный API-ключ
BAD_ACTION - некорректное действие -
@bablouser said in Вопрос по sms activate:
http://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getStatus&id=$id
Спасибо, но как взять $id - id активации, не заходя на сайт, ибо в BAS дается только телефон вроде.
Заранее спассибо -
@redbeard Попробуйте получить его через конструктор, не получится- спрашивайте, поможем
Ничего сложного на самом деле нет, сложно было бы если Вам не отвечали. А тут, как говорится "глаза боятся, руки делают". Используйте модуль HTTP клиент
Get запрос
Содержание ответаПосле этого модуль Регулярные выражения
Первое вхождение (вводите сформированную в https://bablosoft.github.io/RegexpConstructor/ регулярку и используете в дальнейшем переменную Group1) -
@redbeard
Ответы сервиса:
NO_NUMBERS - нет номеров
NO_BALANCE - закончился баланс
ACCESS_NUMBER:$id:$number - номер выдан ($id - id операции,$number - номер телефона)Возможные ошибки:
BAD_ACTION - некорректное действие
BAD_SERVICE - некорректное наименование сервиса
BAD_KEY - Неверный API-ключ
ERROR_SQL - ошибка SQL-сервера
BANNED:$time - аккаунт заблокирован до $time, где time - время формате YYYY-m-d H-i-s (2000-12-31 23-59-59)в ответе придет во тут
ACCESS_NUMBER:$id:$number - номер выдан ($id - id операции,$number - номер телефона)
