есть такая приколюха как открыть новую вкладку, там собствеено и открываешь новый сайт, но не забудь после открытия новой вкладки проверить список открытых вкладок, для этого есть специальный экшен , в нём ты и увидишь какой юрл у тебя в какой вкладке (с каким номером) в твоём в браузере открыты. После того как нашел номер кладки которую ты только что открыл, используй экшен закрыть вкладку , и у тебя закроется открытая только что вкладка и останется та на которую ты хотел вернуться. Да можно конечно закрыть первую вкладку и у тебя останется нулевая но в сложных скриптах бывают траблы и моржно запутаться и закрыть не ту)
[Сделано]Вопрос по работе с потоками
-
Как программно отключить поток?
Как программно включить поток?Можете написать пример использования?
Насколько я понимаю действие завершить поток просто закрывает текущий поток и не дает ему перезапускаться?Необходимо спросить у веб сервера, сколько необходимо потоков для задач определенного кол-ва ботов на момент запуска скрипта.
Пока это возможно только редактируя код скрипта. Создав еще одну секцию, в которой совершать запрос к серверу и устанавливать результат в глобальную переменную.
Но в конструкторе это работать не будетКогда наступает ситуация что работают 30 потоков и 20 штук в ожидании, не очень хорошо сказывается на производительности, было бы замечательно вырубить эти 20, и по необходимости подключать.
Основной удар по производительности в этом случае идет из-за браузера. Возможно действие закрыть браузер/откріть браузер решит проблему?
-
@support хм... закрывать браузер, а это отличная идея. Потоки без браузера действительно меньше требуют ресурсов железа. Спасибо.
@support said in Вопрос по работе с потоками:
Можете написать пример использования?
По поводу примера использования вкл/выкл потока.
Например: в базе на данный моммент есть задания для 20 потоков, запуская скрипт у нас по умолчанию запускается 30 потоков, каждый поток берет себе по 1 заданию и работает с ним, те кому не досталось находяться в ожидании и было бы круто для них вызвать что, то типо thread_close('лог: Мало заданий, поток завершен')!В ситуации же, если есть 100 заданий, а запущено по дефолту 30 потоков. Как только последний поток берет себе 30-ое задание, можно проверить что это последний поток и что есть еще задания, и потоков не хватает - добавить в работу еще 20 или все 70 потоков(в зависимости от мощности железа).Запускаясь каждый новый поток будет брать себе по заданию и т.д и т.п
Идея в том, что бы динамически регулировать кол-во потоков по нуждам скрипта. Надо больше потоков? будет. Слишком много? Можно и уменьшить
-
@UlybnisJe Предлагаю такой вариант решения проблемы:
Сразу создаем макс количество потоков, но без браузера(эту возможность я обеспечу).
В цикле берем разные задания и выполняем.
Если за определенное количество раз задание получить не удалось(мало заданий в базе) - удаляем браузер до лучших времен.
Если задания в базе снова появились - создаем браузер снова.
Как вам? -
@support said in Вопрос по работе с потоками:
разу создаем макс количество потоков, но без браузера(эту возможность я обеспечу).
Я так понял это просто удалить 1 строку из initialize?
section_start("Initialize", 0)!
-> ЭТУ browser()!
section_end()! -
@support а реально ли вообще сделать такую штуку как настоящий браузер? Я имею ввиду, что запускаешь скрипт, он допустим авторизовывается и дает управление в твои руки, и ты пользуешься браузером как обычным хромом.
В некоторых ситуациях это было бы очень даже кстати.
-
Переключение на ручное управление помогло бы вот с этим http://prnt.sc/cwnwsp
-
@UlybnisJe В новой версии доступны 2 новых действия Открыть браузер и Закрыть браузер. Если хотя бы одно из них использовано - это значит, что разработчик управляет жизнью браузера самостоятельно. Перед загрузкой любой страницы браузер нужно открыть, тогда, когда нужно сохранить память его можно закрыть.