Вызов асинхронной функции

Moved Поддержка
  • Добрый вечер. Подскажите как реализовать идею?
    Я запускал 20 потоков - в каждое закидывалось прокси и профиль с авторизацией на сайте. И дальше уже тыкались действия на сайте. Сейчас хочу через асинхронную функцию запускать по 5 браузеров и чтобы туда закидывало прокси и профили, делались действия и потом следующие 5 браузеров пока не применит все прокси.

    Раньше вот так запускал 20 потоков, но лагало и неудобно так:
    threads.png

    Возможно через асинхронную функцию облегчить жизнь?

  • Примерно так:

    1. Считываем файл прокси в список
    2. Делаем цикл (в данном случае он равен количеству прокси [[LIST_RPOXY_GOOD]].length).
    3. В цикле получаем прокси по индексу (в данном случае кодом: VAR_PROXY_GOOD = VAR_LIST_PROXY_GOOD[VAR_CYCLE_INDEX]).
    4. Вызываем нужную асинхронную функцию.
      6ea50072-15a6-4756-8ff5-6bca6c90d093-изображение.png
      В настройках функции указываем параметр (в данном случае PROXY_GOOD)
      395647b6-1897-4b38-b6cb-6d9ce7bda3a2-изображение.png
      В настройках асинхронной функции тоже указываем тот же параметр (PROXY_GOOD) и устанавливаем максимальное количество потоков (в данном случае 5). Переменная ASYNC_USERRREGISTRATION_IDS - это лист, где хранятся ID запущенных потоков.
      5b3aeb60-8940-439d-88a4-7152fda20c2b-изображение.png
      Теперь в теле асинхронной функции просто получаем параметр, который указывали (PROXY_GOOD). И теперь в каждом потоке будет свой прокси.
      1012912d-48f4-4fd8-a61c-0ed54d140182-изображение.png
      Ну и в конце просто вызываем действие ждать окончание потоков.
      eb228922-55ec-45ed-9660-0f59d824a501-изображение.png
      Лень было под пример проекта переделывать, поэтому картинками объяснил.

    P.s. В асинхронных функциях видны только переданные параметры, глобальные переменные и ресурсы. Асинхроные функции в коде выполняются почти мгновенно, не дожидаясь результата. Поэтому важно "Ждать завершение ассинхронных функций", если потом по плану использовать их результаты. И если потом в основном потоке, после завершения асинхронных функций, нужно получить переменную, которая была объявлена в асинхронной функции нужно либо сделать ее глобальной, либо передать в ресурс, либо в настройках ставить "Есть возвращаемое значение: да" и там его как-то настраивать.

  • @SecDeveloper Спасибо за время! Что-то ещё сложнее получилось для меня всё это))

  • @Neboch said in Вызов асинхронной функции:

    @SecDeveloper Спасибо за время! Что-то ещё сложнее получилось для меня всё это))

    Если что-то непонятно, напиши что именно, объясню чуть попроще. Только в пределах разумного)

  • @SecDeveloper Я через цикл Foreach поковырялся в итоге для себя что-то собрал понятное. Спасибо)
    Почитай другую тему мою, вот там совсем не могу найти ответ всё обрыл

  • 0 Votes
    7 Posts
    600 Views
  • 0 Votes
    1 Posts
    290 Views
  • 0 Votes
    2 Posts
    378 Views
  • 0 Votes
    2 Posts
    405 Views
  • 0 Votes
    11 Posts
    1057 Views