@thechertan Ну вообще с стандартах этого не прописано, но знаю, что есть анти спам системы, которые за этим блюдят. Можете попробовать через node js работать, если хорошо знаете js
Как Выполнить 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 выполняется уже внутри секции после установки значения потоков, пробовал, не подходит :(
"установить количество потоков из ресурса\базы" да, так сейчас и делаю, но значение этого ресурса нужно менять. Какой тип ресурса в таком случае наиболее удобен по Вашему мнению?
-
@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 , вылет программы логичен, или это баг?
Вот пример скрипта. -
-
@support said in Как Выполнить GET до начала основной секции проекта:
Это вопрос к @support , вылет программы логичен, или это баг?
Предпочтительный способ решения проблемы сейчас - запуск функции в несколько потоков.
да, это было бы идеальным решением, если бы такой запуск работал в точности как классический многопоточный запуск проекта - это решило бы много проблем :) Самая главная спотыкачка, мешающая использовать "многопоточный запуск функций" - это не возможность понимать что в этих потоках происходит, многопоточные функции не отписываются в лог и если там что-то падает, узнать об этом не представляется возможным (приходится запускать функцию в один поток, дебажиться, а после переводить на продакшне в многопоток). Очень ждем багфикс. Спасибо. -
@support said in Как Выполнить GET до начала основной секции проекта:
@Sevenup я могу исправить только многопоточный запуск функций. Еще раз, проблема в том, что не работают сообщения об ошибке?
Если многопоточные функции будут сообщать в лог все что в них происходит, равносильно как если бы запустить многопоточно проект, то да - это упростило бы задачу дебага и использования многопоточных функций. Дальше уж если найду еще баги отпишусь.
-
@support said in Как Выполнить GET до начала основной секции проекта:
@Sevenup ошибки, которые случились во время выполнения функции в несколько потоков, теперь выводятся в лог и в отчет
@Sevenup Также я добавил возможность завершать все потоки мгновенно, через "Прервать Скрипт". Теперь запуск многопоточных функций ничем не отличается от обычного.супер! Спасибо! а где брать? ждать 20.4? на гитхабе последние изменение были несколько месяцев назад, там точно не latest.