Как Выполнить GET до начала основной секции проекта



  • пытаюсь сделать удаленную смену к-ва потоков БАСа, т.е. получать например GET запросом к-во потоков, с которыми запустить проект.

    про многопоточную функцию пожалуйста не упоминайте, в ней пока есть нюансы, в частности проблема логирования. Когда нибудь, когда она будет работать четко, текущий топик отпадет.

    Собственно вопрос, как в скрипте до начала "section(1 /1/,1 /1/,1 /1/,0,function(){........." выполнить что-то, например GET запрос.

    _switch_http_client_main()
    http_client_get2("http://mysite.com/?get_threads",{method:("GET")})!
    VAR_THREADS = http_client_content()
    
       
    section(1 /*1*/,1 /*1*/,1 /*1*/,0,function(){
       section_start("\u007b\u0022n\u0022:\u0022Initialize\u0022\u007d", 0)!
       browser()!
       section_end()!
    

    так не прокатывает, ReferenceError: Can't find variable: _switch_http_client_main

    никто не сталкивался с подобным вопросом?
    осталась только идея брать к-во потоков из файлика в папке проекта, меняя значения файла при необходимости, но это как-то пахнет каменным веком, хочется как-то по "программистки" все же :)



  • @Sevenup В теории функция OnApplicationStart запускается перед запуском всех потоков. Можно попробовать через неё выполнить get-запрос и установить общее количество потоков.

    А вообще, есть более простой способ, установить количество потоков из ресурса\базы и соответственно их изменять по необходимости.



  • @Fox said in Как Выполнить GET до начала основной секции проекта:

    @Sevenup В теории функция OnApplicationStart запускается перед запуском всех потоков. Можно попробовать через неё выполнить get-запрос и установить общее количество потоков.

    А вообще, есть более простой способ, установить количество потоков из ресурса\базы и соответственно их изменять по необходимости.

    OnApplicationStart выполняется уже внутри секции после установки значения потоков, пробовал, не подходит :(

    "установить количество потоков из ресурса\базы" да, так сейчас и делаю, но значение этого ресурса нужно менять. Какой тип ресурса в таком случае наиболее удобен по Вашему мнению?



  • UPD:
    я совсем забыл про "база", вроде как там можно удаленно к MongoDB подключаться и оттуда тянуть уже значение.
    попробую, отпишусь...



  • @Sevenup Смотря где у Вас админка, но самый простой способ это взять из файла цифру.
    Можно установить апач и заходить на сервер, через свою админку на php. А там уже можно добавить установки количества потоков (с записью числа в файл для ресурса) и запуск самого скрипта.

    Можно подключить удалённую базу и изменять параметры в ней..

    Кстати BAS поддерживает ссылки вида \\, то есть можно подключить сетевой диск и править файл с количеством потоков в одном месте.



  • @Fox said in Как Выполнить GET до начала основной секции проекта:

    @Sevenup Смотря где у Вас админка, но самый простой способ это взять из файла цифру.
    Можно установить апач и заходить на сервер, через свою админку на php. А там уже можно добавить установки количества потоков (с записью числа в файл для ресурса) и запуск самого скрипта.

    Админка удаленно, BASы за НАТом. Да так и делаю, тяну цифру из файлика а туда ее ложу самописной утилитой, которая получает ее из удаленной админки. Также и project.xml обновляю и старт/стоп(kill) БАСу делаю. Но сам факт того, как это происходит, писать int в файл, что бы потом считать, доставляет дискомфорт :)))) может я перфекционист. Вот подумываю модуль сделать, но моя програмулина на GO, а БАС его не поддерживает, а как их подружить пока не знаю, был бы API какой-то у БАСа по http что ли или даже хз, это уже надо автора звать и с ним идеи обсуждать :)

    @Fox said in Как Выполнить GET до начала основной секции проекта:

    Можно подключить удалённую базу и изменять параметры в ней..

    Попытался подключить БАС к удаленному MongoDB, по началу мне эта идея очень понравилась, прям в процессе работы проекта ходить в базу, что-то читать, что-то писать, но как-то с ходу не взлетело :( пока отложил эту идею. Классика POST/GET работает :)

    @Fox said in Как Выполнить GET до начала основной секции проекта:

    Кстати BAS поддерживает ссылки вида \\, то есть можно подключить сетевой диск и править файл с количеством потоков в одном месте.
    да, но это только когда все БАСы в одной локалке.



  • @Sevenup По vpn соединяйся и работай как в локалке через \\.

    Можно любой костыль придумать, вариантов масса. Я по началу вообще через bat запускал vbs, которые получали данные из админки и записывали в файл..

    Хотя @support планировал выпустить Панель для развертывания и управления несколькими копиями БАС через веб.



  • Решил сейчас попробовать.. Создал ресурс в функции OnApplicationStart, добавил в этот ресурс число, и ввёл этот ресурс в выборе количества потоков..
    В итоге при запуске, BAS пишет в лог Все данные были обработаны и вылазит отчёт работы скрипта, закрыв который вылетает весь BAS.

    Это вопрос к @support , вылет программы логичен, или это баг?
    Вот пример скрипта.



  • @Fox

    Это вопрос к @support , вылет программы логичен, или это баг?

    Вылет это баг, но получить и ресурс для количества потоков из OnApplicationStart нельзя.

    Предпочтительный способ решения проблемы сейчас - запуск функции в несколько потоков.



  • @support said in Как Выполнить GET до начала основной секции проекта:

    @Fox

    Это вопрос к @support , вылет программы логичен, или это баг?

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



  • @Sevenup я могу исправить только многопоточный запуск функций. Еще раз, проблема в том, что не работают сообщения об ошибке?



  • @support said in Как Выполнить GET до начала основной секции проекта:

    @Sevenup я могу исправить только многопоточный запуск функций. Еще раз, проблема в том, что не работают сообщения об ошибке?

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



  • @Sevenup ошибки, которые случились во время выполнения функции в несколько потоков, теперь выводятся в лог и в отчет



  • @Sevenup Также я добавил возможность завершать все потоки мгновенно, через "Прервать Скрипт". Теперь запуск многопоточных функций ничем не отличается от обычного.



  • @support said in Как Выполнить GET до начала основной секции проекта:

    @Sevenup ошибки, которые случились во время выполнения функции в несколько потоков, теперь выводятся в лог и в отчет
    @Sevenup Также я добавил возможность завершать все потоки мгновенно, через "Прервать Скрипт". Теперь запуск многопоточных функций ничем не отличается от обычного.

    супер! Спасибо! а где брать? ждать 20.4? на гитхабе последние изменение были несколько месяцев назад, там точно не latest.



  • @Sevenup Как только закончу со всеми вопросами на форуме.


Log in to reply