Проверка прокси на использование.
-
Здравствуйте, помогите разобраться как сделать проверку прокси менее ресурсоатратной.
Суть вопроса
Цепляю прокси с smartproxy нужной страны
Проверяю что за прокси зецепило на ip.bablosoft.com
Получаю текст с проксей и если прокси есть в ресурсе с использыванными прокси(usedproxy) перезапускаю цикл.
Если нету заношу в ресурс(usedprox) и продолжаю работуЯ сделал проверку таким образом
Получил ip на ip.bablosoft.com и записал в переменную [[CURRENT_IP]]
Читаю файл со списком использованных прокси в переменную CONTENT_USED_PROXY
Далее через регулярку [\s\S]([[CURRENT_IP]])[\s\S] проверяю есть ли в переменной [[CONTENT_USED_PROXY]] текущий прокси.
Этот метод очень затратен даже в один поток мой комп на этом действии виснет на 1-2 сек, мне нужно чтобы работало около 20 потоков.
Прошу помоч пути оптимизации и не кидать камнями я новичек)
-
@Mnogonemogu Я сам не особо гуру, но вот что могу подсказать: так как вы совсем зелёный новичок, то попытаюсь сванговать, что ip вы получаете не через HTTP-клиент, а через браузер (не обижайтесь, пожалуйста, если это не так). Поэтому первое, что возможно оптимизировать - это переделать получение ip через HTTP-клиент, если оно у вас так не реализовано. Также в вашем случае я бы работу с файлом организовал так: сначала читать файл в список, а затем проверить существование в списке вашего прокси, для обоих действий есть отдельные кубики в модулях для работы с файлами и списками соответственно. Регулярки сами по себе требовательны, тем более, если файл у вас там большой. Больше лично я, к сожалению, ничего предложить не могу.
-
- получаем откуда-то прокси
- делаем проверку на наличие
- выполняем свою логику
для проверки на наличие можно использовать 2 варианта:
- список. на несколько потоков нужно через код определять список. он будет храниться в ram memory(оперативная память)
- ресурс. (я не знаю где храниться) тут есть заморочки с поиском, в модуле в комплекте нет поиска по значению, можно использовать код и новый api ресурсов или мой модуль(тема модулей)
хранить лучше только сам ip без портов, протоколов и т.д. если они не нужны. меньше займет места.
добавить новый элемент в ресурс или список нетрудно. список работает быстрей но ест больше оперативыp.s. выкладка того что я продумал для себя. буду реализовывать на этой или след. недели наверно
-
@DoctorKrolic @tet-vivi
Спасибо большое за вашу помощь, решил свою проблему с помощью списка и поиска по списку.
Расположение ресурса —>Читать файл в список —> Содержит ли в списке
-
@Mnogonemogu said in Проверка прокси на использование.:
@DoctorKrolic @tet-vivi
Спасибо большое за вашу помощь, решил свою проблему с помощью списка и поиска по списку.
Расположение ресурса —>Читать файл в список —> Содержит ли в спискеесли каждый раз добавлять новый элемент в файл/ресурс-файл, а потом читать перед проверкой в список что бы только проверить наличие - это довольно ресурсо-емко получается(если данных в файле много, то можно столкнуться с тем что каждый поток будет много есть ресурсов копма и тормозить скрипт когда будет производить чтение в список)
это можно наверно отнести к той же рекомендации не перезагружать ресурсы в многопотоке(хотя есть обходные методы).