У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Вопросы по Интерфейсу
-
1. не могу понять почему после указания ссылки на прокси в логе появляется сообщение о том что я эту ссылку не указал

Часть кода
<div uk-alert="" data-resource-name="Proxy" data-resource-type="Select" data-is-visibility-factor="true" data-default-value="Use By File" data-select-type="1" id="ix36n"> <div id="i2g7g" class="resource-label">Proxy</div> <div id="ikmez" class="ui-radio"> <label id="is0pu" class="ui-internal-label"> <input type="radio" name="radio_Proxy" value="Use By File" class="uk-radio ui-internal"> <span class="ui-internal">Use By File</span> </label> <label id="i1bsk" class="ui-internal-label"> <input type="radio" name="radio_Proxy" value="Use By URL" checked="checked" class="uk-radio ui-internal"> <span class="ui-internal">Use By URL</span> </label> </div> </div>2. почему не сохраняется введенный ранее текст после перезапуска в textarea или в Proxy URL (код выше) приходится каждый раз повторно вводить
<div uk-alert="" data-resource-name="Body" data-resource-type="FixedString" data-default-value=""> <div id="i0sstj" class="resource-label">Body</div> <textarea placeholder="Body" value="" validation-not-empty="true" id="irvo2nv" class="uk-textarea"></textarea> </div>3. почему запускается 2 потока, когда я указал в настойках 1
нашел такой код, но его редактирование не помогло (убирал + 1)if (EventType == "thread_start") { let CurrentValue = parseInt($("#ThreadsRunning").html()) $("#ThreadsRunning").html((CurrentValue + 1).toString()) } -
- не могу понять почему после указания ссылки на прокси в логе появляется сообщение о том что я эту ссылку не указал
Это был баг. Ресурс типа LinesFromUrl не работал с веб интерфейсом. Исправил, будет в следующей.
- почему не сохраняется введенный ранее текст после перезапуска в textarea или в Proxy URL (код выше) приходится каждый раз повторно вводить.
Proxy URL
Исправил, будет в новой.
textarea
Добавил новую функцию
SetResourceValue, она работает аналогичноGetResourceValue, и позволяет записывать значения в нестандартные контроллы и много чего другого. Описание здесь https://wiki.bablosoft.com/web-interface/#/managingscriptlifetime?id=method-acceptresourcesЭто работает уже сейчас.
- почему запускается 2 потока, когда я указал в настойках 1
Не могу повторить, на вашем проекте настройки потока корректно передаются.
-
@support а когда планируется обнова?
И по 3 вопросу - это нужно проверять не в редакторе BAS, а скомпилировать проект и запустить его.Насчет SetResourceValue
Добавил код как написано в мане
Все равно не работает, textarea остается пустой после перезапуска.
Я проверяю на скомпилированном приложении не в редакторе!
Что то делаю не так? -
@dmitr said in Вопросы по Интерфейсу:
И ещё вопрос.
Что то странное с потоками, а именно запускаю софт в 10 потоков, а по факту жрет 200 потоков.Что вы имеете ввиду под жрет 200 потоков? БАС запускается в 200 потоков или что?
-
@usertrue я же написал, бас запускаю в 10 потоков, а на деле вот прям сейчас

Я беру один прокси для HTTP и использую post/get запросы для авторизацию, затем тот же прокси "надеваю" на браузер и выполняю работу в нем.
У админа есть мой код, может он скажет в чем прикол.
-
This post is deleted!
-
@dmitr Вы про "потоки" прокси чтоли? ) Ну, если что сайт при работе в браузере делает массу запросов. Картинки, стили, скрипты и тд. БАС тут не причем. Мне попадались сайты, которые под сотню запросов делали за несколько секунд.
-
@usertrue не думаю что причина в этом, потоки - это запросы к прокси серверу.
Берете вы прокси 127.0.0.1:1000 подключаете его к браузеру и можете через него заходить на различные сайты с сотней запросов внутри них, но по факту вы обращаетесь к главному проси серверу (сервис, который выдает прокси) всего один раз. Не думаю, что прокси сервера контролируют потоки, которые внутри браузера происходят :)
Я тоже первый раз с этим столкнулся, ранее делал скрипты на post/get запросах и не знал проблем, сейчас понадобился браузер и вот такая фигня приключилась.
-
@dmitr said in Вопросы по Интерфейсу:
не думаю что причина в этом, потоки - это запросы к прокси серверу
Каждый запрос к сайту и является самостоятельным запросом к прокси в вашем случае. Сайту для полной загрузки страницы требуется сделать 200 запросов. Бас не может влиять на потребности сайта. Можете запретить погрузку скриптов, картинок и прочего. Это снизит число ваших "потоков".
В скриптах на запросах каждый поток выполняет запросы последовательно. Поэтому число одновременных запросов не может превышать число запросов к прокси.
Браузер же может отправлять одновременно несколько запросов к сайту.
Потоки в басе не имеют ничего общего с потоками запросов к прокси из вашего скриншота. -
@dmitr said in Вопросы по Интерфейсу:
не думаю что причина в этом, потоки - это запросы к прокси серверу.
Ну ждите админа, да прибудит с ним сила...
-
@xclsv спасибо, я уже проверил - реально учитываются все запросы при подгрузке сайта и это влияет на потоки на сервисе который выдает прокси.
Тут все понял, может посоветуете прокси сервисы, которые не ограничивают работу по потокам?
Остальные вчерашние вопросы в силе.
-
@dmitr вот разжевано , Что значит "потоки" для прокси https://github.com/proxybank/proxytank.ru/wiki/Что-значит-"потоки"-для-прокси
-
а когда планируется обнова?
Когда закончу планировщик, там еще много работы. Пока вы можете использовать хттп клиент и загружать данные в OnApplicationStart.
И по 3 вопросу - это нужно проверять не в редакторе BAS, а скомпилировать проект и запустить его.
Все работает. https://youtu.be/tYhMAIcVH9w
Скорее всего, вы где-то ошиблись. В БАС существует возможность отладки интерфейса, возможно стоит ей воспользоваться.
Добавил код как написано в мане
Судя по скриншоту, вы переопределили SetResourceValue, но не переопределили GetResourceValue. Напоминаю, что чтобы связать любой контролл с ресурсом нужно переопределить GetResourceValue, чтобы БАС знал, как получать от туда значения и SetResourceValue, чтобы БАС знал, как значения записывать.
-
@support said in Вопросы по Интерфейсу:
Все работает. https://youtu.be/tYhMAIcVH9w
Скорее всего, вы где-то ошиблись. В БАС существует возможность отладки интерфейса, возможно стоит ей воспользоваться.Надо смотреть на Threads running

