В одном браузере никак нельзя сделать разные IP в двух вкладках.
Создавайте новый поток и делайте.
запуск мульти потоков по тригеру
-
@buzzlighter said in запуск мульти потоков по тригеру:
не соображу, мне нужно запускать потоки, если sql запрос вернул задачу. потоки стартанули, отработали и закрылись, до следующей задачи из базы.
как правильно такая задача реализуется, подскажите пожалуйста?Используйте действие "Вызов функции в несколько потоков"

-
@buzzlighter said in запуск мульти потоков по тригеру:
@Fox но тогда у меня каждый из потоков не получит свои уникальные параметры [[JOB_ACCOUNT]], верно? они все будут идентичны?
Перед запуском функции создайте локальный ресурс и заполните его данными
-
на всякий случай еще раз свою мысль:
имею возможность запускать, к примеру, 50 потоков
каждые 5 сек проверяю БД на наличие задачи. в задаче может быть 5 выполнений, может быть 500.
пытаюсь реализовать таким образом, чтобы каждые 5 сек стартовали потоки, если есть свободные и выполняли свои задачи.50 потоков
задача1, 50 заданий, стартанули все 50 потоков
спим 5 сек
задача2, 10 заданий, не стартануло нисколько, все потоки заняты
спим 5 сек
задача2, 10 заданий, освободилось 6 потоков, стартануло 6 потоков
спим 5 сек
задача2, осталось 4 задания, освободилось 20 потоков, стартануло 4 потока
спим 5 сек
задача3....... -
@buzzlighter said in запуск мульти потоков по тригеру:
на всякий случай еще раз свою мысль:
имею возможность запускать, к примеру, 50 потоков
каждые 5 сек проверяю БД на наличие задачи. в задаче может быть 5 выполнений, может быть 500.
пытаюсь реализовать таким образом, чтобы каждые 5 сек стартовали потоки, если есть свободные и выполняли свои задачи.50 потоков
задача1, 50 заданий, стартанули все 50 потоков
спим 5 сек
задача2, 10 заданий, не стартануло нисколько, все потоки заняты
спим 5 сек
задача2, 10 заданий, освободилось 6 потоков, стартануло 6 потоков
спим 5 сек
задача2, осталось 4 задания, освободилось 20 потоков, стартануло 4 потока
спим 5 сек
задача3.......тут важный момент, вам нужно ждать завершения потоков с одной задачи, прежде чем они начнут другую задачу? Если да, то используйте "Вызов функции в несколько потоков", если нет, то используйте действие "Вызов функции асинхронно", а данные в функцию передавайте через атрибут функции
-
@Fox said in запуск мульти потоков по тригеру:
@buzzlighter said in запуск мульти потоков по тригеру:
на всякий случай еще раз свою мысль:
имею возможность запускать, к примеру, 50 потоков
каждые 5 сек проверяю БД на наличие задачи. в задаче может быть 5 выполнений, может быть 500.
пытаюсь реализовать таким образом, чтобы каждые 5 сек стартовали потоки, если есть свободные и выполняли свои задачи.50 потоков
задача1, 50 заданий, стартанули все 50 потоков
спим 5 сек
задача2, 10 заданий, не стартануло нисколько, все потоки заняты
спим 5 сек
задача2, 10 заданий, освободилось 6 потоков, стартануло 6 потоков
спим 5 сек
задача2, осталось 4 задания, освободилось 20 потоков, стартануло 4 потока
спим 5 сек
задача3.......тут важный момент, вам нужно ждать завершения потоков с одной задачи, прежде чем они начнут другую задачу? Если да, то используйте "Вызов функции в несколько потоков", если нет, то используйте действие "Вызов функции асинхронно", а данные в функцию передавайте через атрибут функции
ждать не нужно
я так и сделал, асинхронно, как на скрине
но не отрабатывает корректно, не пойму почему
в записи корректно
в запуске функция не вызывается вовсе, for фигачит до бесконечности -
@buzzlighter said in запуск мульти потоков по тригеру:
ждать не нужно
я так и сделал, асинхронно, как на скрине
но не отрабатывает корректно, не пойму почему
в записи корректно
в запуске функция не вызывается вовсе, for фигачит до бесконечностиОбязательно добавьте действие "Сон" в цикл, иначе может зависнуть BAS. Выводите содержимое переменных в лог, так вы увидите причину
-
@Fox said in запуск мульти потоков по тригеру:
@buzzlighter said in запуск мульти потоков по тригеру:
ждать не нужно
я так и сделал, асинхронно, как на скрине
но не отрабатывает корректно, не пойму почему
в записи корректно
в запуске функция не вызывается вовсе, for фигачит до бесконечностиОбязательно добавьте действие "Сон" в цикл, иначе может зависнуть BAS. Выводите содержимое переменных в лог, так вы увидите причину

это всё что на данный момент есть в асинхронной функции
в режиме запуска в лог ничего не падаетв for добавлю sleep
-
@buzzlighter said in запуск мульти потоков по тригеру:
это всё что на данный момент есть в асинхронной функции
в режиме запуска в лог ничего не падаетв for добавлю sleep
На будущее, не присылайте скриншоты кода, в них сложно бывает разобраться. Лучше приложите тестовый скрипт (скрипт, который не содержит лишних действий), вам быстрее смогут помочь
-
сейчас добавил слип
внимательно оттестил на трех потоках [[THREADS]].
в режиме запуска происходит следующееработает цикл, вызывается асинхронная функция, после в цикле слип 1сек. в функции стоит слип 10сек.
наблюдаю картину, что цикл плодит функции, не соблюдая ограничение в 3 одновременных функции одновременно -
ура, я освоил и работает как я ожидал
теперь вопрос
вверху у меня 6,7,8,9,10 инстанс
в логе идет инфа от потоков, которые ну как бы не запущены
это как интерпретировать? -
@buzzlighter said in запуск мульти потоков по тригеру:
вверху у меня 6,7,8,9,10 инстанс
в логе идет инфа от потоков, которые ну как бы не запущены
это как интерпретировать?Потоки могут работать и без браузеров, смотрите логику работы вызова функций
-
@Fox said in запуск мульти потоков по тригеру:
@buzzlighter said in запуск мульти потоков по тригеру:
вверху у меня 6,7,8,9,10 инстанс
в логе идет инфа от потоков, которые ну как бы не запущены
это как интерпретировать?Потоки могут работать и без браузеров, смотрите логику работы вызова функций
у меня сейчас основная логика в onApplicationStart, которая открывает асинхронно браузеры
то бишь количество потоков по идее должно равняться браузерам и соответственно поток в логе по идее должен равняться кнопке Браузер # -
@buzzlighter net, ne doljen, logichno chto doljen sovpadat, no kajdiy raz sozdaetsa noviy potok, poetomy v loge otobrajaetsa noviy #, eto mojno ispravit tolko logikoy, esli silno nujno