Умное использование прокси

Поддержка
  • Всем привет, можно ли так сделать чтобы например 3 разных проекта, брали прокси из 1 файла? Самое главное чтобы 1 прокси не использовалась одновременно в 2 или более проектах?

  • @xiniy22281
    Тогда нужно сделать 1 общую базу. Это может быть файл или бд. Я бы посоветовал файл, если это на одном компьютере. Дописывайте в файл последний используемый прокси. В каждом проекте читайте этот файл и получайте текущую и предыдущую строку (если потребуется). Если текущий прокси равен текущей или предыдущей строке, то брать другой прокси. Очищайте этот файл при синхронном запуске 3-х проектов или проверяйте файл на последнее обновление

  • This post is deleted!
  • РЕШЕНИЕ: Создаём в бд 3 колонки, id | proxy | work

    В поле work указываем 0 либо 1. 0 = прокси свободна, 1 = прокси в работе.
    При запуске софта, он ищёт в таблице прокси с значение 0. Устанавливает значение в столбце work - 1, при окончании работы скрипт ставит 0.

  • @xiniy22281 said in Умное использование прокси:

    при окончании работы скрипт ставит 0.

    а если поток закончится до установки обратно 0?)

  • @tet-vivi тише, он пока не знает про это, хихи

  • @tet-vivi Таковых проблем в скриптах не имеется :)

  • @tet-vivi Но даже если есть, можно создать ещё один столбец, добавлять туда время когда софт взял прокси, и например 1 поток работает в среднем 5 минут, и если прокси не освободилась через 7 минут, то поставить ноль и сразу же взять прокси ;)

  • @xiniy22281 said in Умное использование прокси:

    @tet-vivi Таковых проблем в скриптах не имеется :)

    Такая проблема можно возникнуть, просто банально если сервер будет перезагружен с работающим скриптом. Вначале работы скрипта стоит обнулять эти данные.

  • В варианте с базой данных тогда неплохо бы еще добавить колонку "ts", куда писать таймстамп.

    И в запросе забирать проксю примерно так:

    SELECT * FROM proxies WHERE work=1 ORDER BY ts ASC LIMIT 1
    

    При взятии соотвественно обновлять таймстамп и work=1.

    И блокировку транзакции надо не забыть сделать, чтобы одновременно разные потоки не забирали одну проксю.

  • 0 Votes
    5 Posts
    545 Views
  • 0 Votes
    8 Posts
    815 Views
  • 0 Votes
    7 Posts
    808 Views
  • 0 Votes
    4 Posts
    649 Views
  • 0 Votes
    7 Posts
    1698 Views