Запуск потоков по очереди с промежутком



  • @freeliman
    в ресурсе задается число потоков, которое должно одновременно выполнять заданную функцию
    0_1510411066720_upload-fba59133-e569-477f-876d-0a9d9d9e9f2f
    в OnApplicationStart
    0_1510411088961_upload-39495768-ed95-4310-98ae-28546262b26f задаем глобальную переменную равную нулю

    Теперь перед участком где будут действия, в вашем случае авторизация - вызываем функцию которая управляет очередью
    0_1510411162172_upload-7ce34bf0-80af-4f6b-90d8-8026ed959444

    Функция очереди hold_url_bots
    0_1510411427333_upload-f4d17ca7-84c0-4c88-a57b-14e36ebd2556
    И если выполняется условие, то цикл прерывается и продолжается авторизация при этом глобальную переменную нужно увеличить на 1.
    После вашей авторизации нужно уменьшить глобальную переменную на 1.
    0_1510411549520_upload-f591a49a-e60c-417f-a11e-3e8d617fa45c

    Об этой функции я уже где-то рассказывал кажется, а идею очереди вроде бы нашел на форуме, не помню уже.



  • @Fox @venom777 не могу понять, какое решение выбрать ?

    Мне нужно чтобы заказчик ручками, через ресурс, указал количество секунд для паузы (60 сек)
    между потоками. первый поток без паузы, далее НЕ ОГРАНИЧЕННОЕ количество потоков, по очереди с паузой, запускал и успевал проходить авторизацию.

    Вот как бы такой бзык !



  • @freeliman с действием спать и номер потока будет проще всего



  • @venom777 не могу понять что значит 10 что значит 15 ?

    мне надо 1,2,3, 4, 5



  • А как сделать без паузы, просто по очереди запускать потоки ?



  • @freeliman никак

    Что сложного в конструкции Получить номер потока - Спать (номер потока - 1) *{ресурс с числом секунд паузы } * 1000 - Открыть браузер ?



  • Да он поставил примеры с 10 потоками. Мне надо с 1 потоком, я запутался. В голове плов, не могу понять где начало а где конец.

    Это как носки вязать, от куда начинать с носка или пятки ?



  • @freeliman
    @venom777 предожил очень сложный вариант. Если сделать так как я написал - все будет так как ты хочешь, а именно каждый браузер будет открываться с нужной задержкой



  • Ой а можешь примерчик сделать ?

    А можно сделать так, что пока первый поток не авторизовался, второй не запускать ?



  • @freeliman нет



  • Ну тебя тоже не совсем ясно понятно. Получить номер потока, а куда вставлять, когда вставлять не понял. Примерно понял что вставлять.

    Дайте пример пожалуйста



  • @DrPrime said in Запуск потоков по очереди с промежутком:

    @freeliman никак

    Что сложного в конструкции Получить номер потока - Спать (номер потока - 1) *{ресурс с числом секунд паузы } * 1000 - Открыть браузер ?

    В какой конструкции получить номер потока ?



  • @freeliman юзай поиск по программе, я тебе уже показывал где поиск в проге находится



  • я понимаю что вам лень написать ответ на мой вопрос и вы решили что мне лень юзать поиск, на самом деле это не так, я сперва юзаю поиск, а если что не понятно, создаю тему, как меня научили почти год назад.

    если не хотите помогать, с толку хотя бы не сбивайте !



  • @freeliman
    я имею ввиду этот поиск
    http://prntscr.com/h957gi
    насчет поиска по форуму, лично нашел 5 тем где описывается вопрос их этой темы, еще 5 - которые ссылаются на них. В некоторых даже есть примеры скриптов.



  • Вот что я понял из того что вы мне написали. Как написали, так и понял !

    в конструкции Получить номер потока - Спать (номер потока - 1) *{ресурс с числом секунд паузы } * 1000 - Открыть браузер
    

    0_1510420914251_Скриншот -  11, 2017 8.21 PM.png

    Этот вариант не работает



  • @DrPrime можете подробней объяснить ?

    а первый поток тоже будет с задержкой запускаться ?



  • @freeliman said in Запуск потоков по очереди с промежутком:

    Ой а можешь примерчик сделать ?

    А можно сделать так, что пока первый поток не авторизовался, второй не запускать ?

    И это можно. Если использовать глобальную переменную.



  • @freeliman said in Запуск потоков по очереди с промежутком:

    А можно сделать так, что пока первый поток не авторизовался, второй не запускать ?

    Ставишь глобальную переменную в онапликейшнстарт со значение true. В самом шаблоне получаешь номер потока, ставишь метку и далее в сон выражение ([[поток]] * "время сна в секундах (2-5)" - "время сна в секундах (2-5)") * 1000. Потом if глобальной переменной, в нем сначала меняешь значение глобальной переменной на false, затем запускаешь функцию авторизации и снова меняешь глобальную переменную на true. В if под else делаешь возврат к метке


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.