Bogdan
и каждый уже у себя верифицирует
🅰️nimeCoder
Ну гугл похоже хочет у себя верифицировать 😁
🅰️nimeCoder
Хз что он с ним делает если не сравнивает
Bogdan
отстойно, что так можно. У меня сайт был тяжелый несколько мегабайт страница, и там капча, я ее на отдельный прокси нормальный закидывал чтобы трафик не жрало на загрузку обычной страницы а только капчу.
Bogdan
работало все отлично, но кто-то может и воспользоваться.
🅰️nimeCoder
🅰️nimeCoder
Туда сюда строки пересобирвет и бинарку туда сюда перегоняет
🅰️nimeCoder
В сотни тыс итераций
Bogdan
да уж над прокси ферму ставить
Alhimik
Я правда не знаю почему
Возможно из-за того что ключ действует минуту вроде бы. И есть вероятность что пользователь запросит капчу с одного IP, и в течении минуты перейдёт с мобильного интернета, к примеру, на Wi-Fi и ответ пришлёт уже с другого IP. Или перескакивания с одной базовой станции на другую, хотя я не помню меняется ли тогда IP.
Хоть это и маловероятные кейсы, но вполне могут создавать проблемы.
Pavel
кто-нибудь сталкивался с подобным?
🅰️nimeCoder
с чем
Pavel
В общем выяснил, что капчту дискорд просит капчту, если пытаться логиниться через прокси
Pavel
На скрине она просто не отобразилась
Bogdan
Alex
Какие нынче топ атидетект плагины?
🅰️nimeCoder
🅰️nimeCoder
решит большинство проблем в принципе, остальное сам уже)
🅰️nimeCoder
можшь попробовать https://github.com/dedol/PrivacyShield мы с другом писали под подобное дело
🅰️nimeCoder
в принципе он хоть и под фф, можешь портировать куда угодно, основной код inject.js
🅰️nimeCoder
deviceinfo.me можешь для чека использовать
Oz
да уж, на что не пойдешь ради обратной совместимости (
Oz
Nñ pp mm
1
Pavel
Хорошо, спасибо. Опробую
Pavel
Alex
Подскажите, как pptr cluster можно обрабатывать очередь в редисе. Просто взять из очереди url, открыть страницу, и вернуть тайтл обратно в редис.
Pavel
Bogdan
Alex
Alex
Alex
Есть очередь в редисе, она может быть пустая. Инстансы стартуют как только в очереди есть таски, ибо в самих тасках аргументы для самого инстанса.
Alex
Нужно лупить очередь, и если она не пустая стартовать инстанс с аргументом из таски. И все это крано канкаренси скажем =8
Andrey
всегда интересовало, почему все привязываются к этому concurrency? это же никак не вяжется на максимальную производительность
Alex
Andrey
почему
Alex
почему
переключение контекста дорогая операция + кеши проца,в которых предиктивная модель, свопит последние 5,,6 инструкций. да и бегать по адресному пространству тоже не дешего в рамках межпроцессных взаимодействий
Alex
то ли дело поток аллоцировать для процесса, в его адресном пространстве. выделение дешевое, менеджеру памяти легче это сделать. освободить чуть дороже и все. и процу легче молотить сегмент в рамках одной страницы памяти, не нужно бегать по таблицам
Andrey
это из 90х отмаза) да, правильно все написано, но к современным процессорам и ОС мало относится. У меня винда и сейчас запущено 278 процессов/3449 потоков.
Слабым местом, если мы обсуждается инстанс браузера, будет память, выделяемая под процесс - ресурсы, а так же скорость интернета - самое слабое место.
А теперь вернемся к моему вопросу - почему кратно количество ядер надо запускать)
Andrey
при этом сам хром запускает на каждую вкладку и бекграунд задачи свой (внимание) процесс
Alex
чтобы равномерно утилизировать ядра, очевидно же
Andrey
равномерно в браузере?)
Andrey
не в алгоритмически сложных, оптимизированных задача - а в браузере
Alex
В любом случае хоть винда, хоть линукс, мы с юзерспейса влиять на тредпулл и таск менеджер не можем если ты про это. Они сами там очереди сформируют
Andrey
поэтому и нет смысла никакого привязывать к цифрам
Alex
Есть....
Alex
Знание что есть кеши ...
Andrey
да пофиг на кеши, на переключение контекста, когда у тебя сайт отвечает 500 мс
Alex
Alex
Для хоум поделок да, пофик в целом.
Alex
поэтому и нет смысла никакого привязывать к цифрам
Давно винду не трогал, но на сколько помню там есть чекбокс, отдавать приоритет службам/сервисам или приложениям. На серверных билдах по умолчанию службы, на десктопе приложениям. Чекни в режиме приоритета службам, io стек должно забустить, им больше проца давать будет.
Andrey
ой эта галка даже не знаю в какой версии была)
Alex
Ну думаю в реестре под нее ключ еще будет долго.
Andrey
плохие у тебя представления и винде)
Andrey
сейчас никто таким не пользуется
Andrey
но вообще приоритет любого процесса можно выбрать из 6 значений
Andrey
я из гугла узнал)
Alex
Alex
Andrey
да я даже не подумал бы никогда, что понадобится туда лезть, вообще не нужная информация)
Bogdan
Alex
Что за решение?
https://javascript.plainenglish.io/how-to-build-a-scalable-scrawler-service-with-puppeteer-8e08905ed7e3
Bogdan
Bogdan
И я контрой конкуренции не нашёл
Bogdan
Там
Bogdan
const maxConcurrency = 4;
let currentConcurrency = 0;
const backpressure = async () => {
await delay(550, 750);
if (currentConcurrency >= maxConcurrency) {
return await backpressure();
}
currentConcurrency = currentConcurrency + 1;
console.log(`Current Concurency: ${currentConcurrency}`);
return console.log('Ready to run job');
};
Bogdan
вот это тебе нужно просто гдето в конце консумера поставить
Bogdan
чтобы он не фетчил из очереди пока новый воркер не освободится
Bogdan
Bogdan
он просто зальет в кластер всю очередь
Bogdan
из редиса и все
Bogdan
если именно с кластером то бэпресур будет вот так выглядеть
const backpressure = async () => {
const queue_length = cluster.jobQueue.list.length;
await delay(550);
if (queue_length >= max_concurrency) {
return backpressure();
}
return 'Ready for queue';
};