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

Поддержка
  • @tet-vivi said in Возможно ли так получать глобальную переменную?:

    @kuzkuz а во время "постоянного" наблюдения поток что-то должен делать?

    Поток должен делать много чего, перебирать урл-ы, загружать нужные, брать данные

    что должно происходить при изменении переменной?

    перенастраивать браузер

  • @Fox ваши примеры мне интересны, но не понятны пока что.
    В посте выше описано что мне нужно - то что вы описали, может мне помочь?

  • @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox ваши примеры мне интересны, но не понятны пока что.
    В посте выше описано что мне нужно - то что вы описали, может мне помочь?

    Нет, но я думаю тут нужно смотреть на изначальную задачу. Может вам проще будет вызывать функции асинхронно и прерывать их в случае смены ip

  • @Fox said in Возможно ли так получать глобальную переменную?:

    @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox ваши примеры мне интересны, но не понятны пока что.
    В посте выше описано что мне нужно - то что вы описали, может мне помочь?

    Нет, но я думаю тут нужно смотреть на изначальную задачу. Может вам проще будет вызывать функции асинхронно и прерывать их в случае смены ip

    Есть список урл, потоки их перебирают. Если урл соответствует некой маске, поток заходит, берет код страницы, грузит страницу (обязательное условие).

    и тут начинается проблема в периодах вызова функции проверки ip
    вызывать каждую секунду, три секунды, 5 или 20 сек...
    и это я описал простой алгоритм из 5 кубиков, а если кубиков 300

  • @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox said in Возможно ли так получать глобальную переменную?:

    @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox ваши примеры мне интересны, но не понятны пока что.
    В посте выше описано что мне нужно - то что вы описали, может мне помочь?

    Нет, но я думаю тут нужно смотреть на изначальную задачу. Может вам проще будет вызывать функции асинхронно и прерывать их в случае смены ip

    Есть список урл, потоки их перебирают. Если урл соответствует некой маске, поток заходит, берет код страницы, грузит страницу (обязательное условие).

    и тут начинается проблема в периодах вызова функции проверки ip
    вызывать каждую секунду, три секунды, 5 или 20 сек...

    ни чего не понял. Если вы грузите страницу, зачем вам проверять глобальную переменную?

  • @Fox said in Возможно ли так получать глобальную переменную?:

    @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox said in Возможно ли так получать глобальную переменную?:

    @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox ваши примеры мне интересны, но не понятны пока что.
    В посте выше описано что мне нужно - то что вы описали, может мне помочь?

    Нет, но я думаю тут нужно смотреть на изначальную задачу. Может вам проще будет вызывать функции асинхронно и прерывать их в случае смены ip

    Есть список урл, потоки их перебирают. Если урл соответствует некой маске, поток заходит, берет код страницы, грузит страницу (обязательное условие).

    и тут начинается проблема в периодах вызова функции проверки ip
    вызывать каждую секунду, три секунды, 5 или 20 сек...

    ни чего не понял. Если вы грузите страницу, зачем вам проверять глобальную переменную?

    в глобальной переменной ip прокси.
    если она поменялась, надо обновить настройки браузера.
    так понятнее?

  • @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox said in Возможно ли так получать глобальную переменную?:

    @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox said in Возможно ли так получать глобальную переменную?:

    @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox ваши примеры мне интересны, но не понятны пока что.
    В посте выше описано что мне нужно - то что вы описали, может мне помочь?

    Нет, но я думаю тут нужно смотреть на изначальную задачу. Может вам проще будет вызывать функции асинхронно и прерывать их в случае смены ip

    Есть список урл, потоки их перебирают. Если урл соответствует некой маске, поток заходит, берет код страницы, грузит страницу (обязательное условие).

    и тут начинается проблема в периодах вызова функции проверки ip
    вызывать каждую секунду, три секунды, 5 или 20 сек...

    ни чего не понял. Если вы грузите страницу, зачем вам проверять глобальную переменную?

    в глобальной переменной ip прокси.
    если она поменялась, надо обновить настройки браузера.
    так понятнее?

    Немного понятнее. Для чего обновлять настройки браузера? Ведь если сменился ip, то работу лучше прекратить и начать по новой. В этом плане идеально подходит асинхронный вызов функции

  • @Fox said in Возможно ли так получать глобальную переменную?:

    Немного понятнее. Для чего обновлять настройки браузера? Ведь если сменился ip, то работу лучше прекратить и начать по новой. В этом плане идеально подходит асинхронный вызов функции

    Хорошо. Сейчас опишу подробно

    Берем урл. Загружаем в браузере. Далее 150 кубиков неких действий с урл/браузером. Манипуляции которые в 1 сек не уложить. Нужно делать что то 5 сек, что то 30 сек, что то 3 минуты.
    ps то что больше 5 сек можно зациклить по 5 сек, чтобы если нужно что то делать между циклами делалось.... но это не важно....

    Вопрос только в том
    Как в данном случае своевременно получать инфу о том что ip сменился и прерывать поток?

  • @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox said in Возможно ли так получать глобальную переменную?:

    Немного понятнее. Для чего обновлять настройки браузера? Ведь если сменился ip, то работу лучше прекратить и начать по новой. В этом плане идеально подходит асинхронный вызов функции

    Хорошо. Сейчас опишу подробно

    Берем урл. Загружаем в браузере. Далее 150 кубиков неких действий с урл/браузером. Манипуляции которые в 1 сек не уложить. Нужно делать что то 5 сек, что то 30 сек, что то 3 минуты.
    ps то что больше 5 сек можно зациклить по 5 сек, чтобы если нужно что то делать между циклами делалось.... но это не важно....

    Вопрос только в том
    Как в данном случае своевременно получать инфу о том что ip сменился и прерывать поток?

    При асинхронном вызове функции вы можете прервать поток из вне. В первом потоке вы вызываете необходимое количество функций в цикле и записываете их id в массив. Далее циклом проверяете внешний ip, если ip сменился, прерываете необходимые функции по id и запускаете их снова уже с новыми данными (ip и другую информацию можно передать через атрибуты функции, это проще, чем через глобальную переменную)

  • @Fox Хорошо.
    А если поток нельзя прерывать при условии что урл загружен в браузер - это усложняет задачу?
    В таком случае надо обновить настройки браузера, но продолжить работу потока.

  • @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox Хорошо.
    А если поток нельзя прерывать при условии что урл загружен в браузер - это усложняет задачу?
    В таком случае надо обновить настройки браузера, но продолжить работу потока.

    в таком случае только циклическая проверка с глобальной переменной

  • @Fox said in Возможно ли так получать глобальную переменную?:

    @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox Хорошо.
    А если поток нельзя прерывать при условии что урл загружен в браузер - это усложняет задачу?
    В таком случае надо обновить настройки браузера, но продолжить работу потока.

    в таком случае только циклическая проверка с глобальной переменной

    Как в данном случае своевременно получать инфу о том что ip сменился ? Только гадать, поставить через каждый кубик получение инфы о глобальной переменной?

  • @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox said in Возможно ли так получать глобальную переменную?:

    @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox Хорошо.
    А если поток нельзя прерывать при условии что урл загружен в браузер - это усложняет задачу?
    В таком случае надо обновить настройки браузера, но продолжить работу потока.

    в таком случае только циклическая проверка с глобальной переменной

    Как в данном случае своевременно получать инфу о том что ip сменился ? Только гадать, поставить через каждый кубик получение инфы о глобальной переменной?

    Давайте рассуждать логически, вам нужно в зависимости от значения переменной произвести какие то действия, так? Значит что то должно периодически сверять глобальную и локальную переменную.
    Например есть функция _sa(), которая вызывается после каждого действия автоматически, эту функцию можно изменить и вставить в неё прерывание потока в зависимости от условия. Но это сработает только в режиме "запуска", а в режиме "записи" просто повесит BAS.

    Мне подсказывает опыт, что задача решается не с того конца. Проще было бы самому менять внешний ip, когда отработали потоки.

  • @Fox

    Проще было бы самому менять внешний ip, когда отработали потоки.

    Да. Но это дорого.

  • @Fox said in Возможно ли так получать глобальную переменную?:

    Например есть функция _sa(), которая вызывается после каждого действия автоматически, эту функцию можно изменить и вставить в неё прерывание потока в зависимости от условия. Но это сработает только в режиме "запуска", а в режиме "записи" просто повесит BAS.

    1. нельзя прерывать поток, если браузер открыт, обязательно надо довести до завершения, проделав все этапы.
    2. что за функция sa, которая вызывается автоматически после каждого действия? я думаю мне бы это подошло. Она бы вызывала ip.bablosoft и чекала то что нужно. Если произошла смена, цеплялась бы перенастройка браузера.
  • @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox said in Возможно ли так получать глобальную переменную?:

    Например есть функция _sa(), которая вызывается после каждого действия автоматически, эту функцию можно изменить и вставить в неё прерывание потока в зависимости от условия. Но это сработает только в режиме "запуска", а в режиме "записи" просто повесит BAS.

    1. нельзя прерывать поток, если браузер открыт, обязательно надо довести до завершения, проделав все этапы.

    Только проверка в цикле, последующую полемику считаю бессмысленой

    1. что за функция sa, которая вызывается автоматически после каждого действия? я думаю мне бы это подошло. Она бы вызывала ip.bablosoft и чекала то что нужно. Если произошла смена, цеплялась бы перенастройка браузера.

    Я уже писал о том, что это синхронная функция (в теме лайфхаках упоминали о ней). То есть в неё нельзя поместить действия код которых заканчивается на восклицательный знак !. Действие "fail" так же является синхронным, но при помещении этого метода в функцию, в режиме "записи" BAS зависает.
    @support уже писал о том, что подобные ошибки не будут поддерживаться, что стоит использовать кубики.

  • @Fox короче решения нет. тех кто возьмется сделать за оплату тоже нет.
    ясно, спасибо

  • @Fox said in Возможно ли так получать глобальную переменную?:

    Только проверка в цикле, последующую полемику считаю бессмысленой

    Я вообще не понимаю, понял ли ли Вы что я хочу сделать.
    Своевременную перенастройку браузера, на случай если ip сменился и браузер отрыт. Проверка в цикле сменился ip или нет = это и школьнику понятно. ip сменился пишет в глоб переменную новое значение.

    Речь была только о том, как организовать скрипт дальше. Как часто внутри потока (через каждый кубик, через каждые 2 кубика) проверять изменилась ли глоб переменная и если изменилась то сделать то что нужно...

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

  • @kuzkuz said in Возможно ли так получать глобальную переменную?:

    @Fox said in Возможно ли так получать глобальную переменную?:

    Только проверка в цикле, последующую полемику считаю бессмысленой

    Я вообще не понимаю, понял ли ли Вы что я хочу сделать.
    Своевременную перенастройку браузера, на случай если ip сменился и браузер отрыт. Проверка в цикле сменился ip или нет = это и школьнику понятно. ip сменился пишет в глоб переменную новое значение.

    Речь была только о том, как организовать скрипт дальше.

    Я говорил о проверке внутри выполняемой функции

    Как часто внутри потока (через каждый кубик, через каждые 2 кубика) проверять изменилась ли глоб переменная и если изменилась то сделать то что нужно...

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

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

    Да тут как душе угодно, можете передавать ip адрес через ресурс, или через файл, или внутри функции в каждом потоке через каждое действие ставить http проверку внешнего ip..

    Я, если честно, не понимаю, как вы себе подобную логику вообще представляете? Вот ваша функция внутри потока выполняет действия и в какой то момент она останавливается, выполняет необходимые вам дополнительные действия и возвращается обратно на то же место?

  • @Fox можно я приложу скрипт сюда. Но если Вы посмотрите. Я просто так не хочу делать скрипт чтобы он тут висел, как я делал в другой ветке @FastSpace и он там повис без ответа ( а делал я его пол часа, что то не пошло тогда). :)