Проверка прокси на использование.



  • Здравствуйте, помогите разобраться как сделать проверку прокси менее ресурсоатратной.
    Суть вопроса
    Цепляю прокси с 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-клиент, если оно у вас так не реализовано. Также в вашем случае я бы работу с файлом организовал так: сначала читать файл в список, а затем проверить существование в списке вашего прокси, для обоих действий есть отдельные кубики в модулях для работы с файлами и списками соответственно. Регулярки сами по себе требовательны, тем более, если файл у вас там большой. Больше лично я, к сожалению, ничего предложить не могу.



    1. получаем откуда-то прокси
    2. делаем проверку на наличие
    3. выполняем свою логику

    для проверки на наличие можно использовать 2 варианта:

    1. список. на несколько потоков нужно через код определять список. он будет храниться в ram memory(оперативная память)
    2. ресурс. (я не знаю где храниться) тут есть заморочки с поиском, в модуле в комплекте нет поиска по значению, можно использовать код и новый api ресурсов или мой модуль(тема модулей)

    хранить лучше только сам ip без портов, протоколов и т.д. если они не нужны. меньше займет места.
    добавить новый элемент в ресурс или список нетрудно. список работает быстрей но ест больше оперативы

    p.s. выкладка того что я продумал для себя. буду реализовывать на этой или след. недели наверно



  • @DoctorKrolic @tet-vivi
    Спасибо большое за вашу помощь, решил свою проблему с помощью списка и поиска по списку.
    Расположение ресурса —>Читать файл в список —> Содержит ли в списке



  • @Mnogonemogu said in Проверка прокси на использование.:

    @DoctorKrolic @tet-vivi
    Спасибо большое за вашу помощь, решил свою проблему с помощью списка и поиска по списку.
    Расположение ресурса —>Читать файл в список —> Содержит ли в списке

    если каждый раз добавлять новый элемент в файл/ресурс-файл, а потом читать перед проверкой в список что бы только проверить наличие - это довольно ресурсо-емко получается(если данных в файле много, то можно столкнуться с тем что каждый поток будет много есть ресурсов копма и тормозить скрипт когда будет производить чтение в список)

    это можно наверно отнести к той же рекомендации не перезагружать ресурсы в многопотоке(хотя есть обходные методы).


Log in to reply
 

  • 6
  • 9
  • 3
  • 4
  • 4
  • 4
  • 2
  • 20