![]() |
#1 |
Участник
|
класс AOSLoadGen
Что делает системный класс AOSLoadGen? Поделитесь знаниями, кто может :-)
|
|
![]() |
#2 |
Модератор
|
а перекрестные ссылки?
![]() им Benchmark tool запускает скрипты, чтобы одним тонким клиентом имитировать работу нескольких |
|
![]() |
#3 |
Участник
|
Да, упоминается он в одном месте в коде.
static server void exec3Tier(BMUserScriptID userScriptID) { AOSLoadGen AOSLoadGen; str userScriptIdstr; userScriptIdStr = userScriptID; if (!AOSLoadGen) AOSLoadGen = new AOSLoadGen('',classnum(BMInfo)); if (!AOSLoadGen.spawnClass(classnum(BMUserScriptrun),userScriptIDstr)) throw error("@SYS60253"); } Но что делает, для меня пока остается загадкой. Как он имитирует работу нескольких клиентов? Запускает отдельную сессию на сервере и выполняет в ней класс? |
|
![]() |
#4 |
Модератор
|
Цитата:
Изначально опубликовано kalex
Как он имитирует работу нескольких клиентов? Запускает отдельную сессию на сервере и выполняет в ней класс? по внешнм признакам: - новая сессия если и запускается, то довольно интересно - ни в "активных пользователях", ни в performance monitor она не появляется. Может быть, это сделано специально, чтобы избежать проблем с лицензиями - AOSLoadGen.spawnClass скармливаются два параметра - classNum и строковой параметр. Тот в свою очередь запустит main() соответствующего класса, параметр доступен через args.parm() все это в принципе и так видно на примере а можно поинтересоваться - чего Вы от него добиваетесь? |
|
![]() |
#5 |
Участник
|
Я ищу способ запустить код на другом клиенте.
|
|
![]() |
#6 |
Участник
|
Цитата:
Изначально опубликовано kalex
Я ищу способ запустить код на другом клиенте. |
|
![]() |
#7 |
Модератор
|
может быть есть смысл посмотреть в сторону SysEventHandler?
только очень аккуратно, чтобы не поломать то, что есть ![]() |
|
![]() |
#8 |
Участник
|
Дело в том, что SysEventHandler работает в отдельном Thread. А из него мне не удается открыть форму или хотя бы вывести info(). Если подскажите, как этого добится, буду очень благодарен.
|
|
![]() |
#9 |
Участник
|
А вот такое решение:
пишем текстовый файл в котором необходимый код на X++ далее у клиента запускаем периодическую функцию по setTimeOut - она считывает файл и его исполняет |
|
![]() |
#10 |
Участник
|
Цитата:
Изначально опубликовано monk
А вот такое решение: пишем текстовый файл в котором необходимый код на X++ далее у клиента запускаем периодическую функцию по setTimeOut - она считывает файл и его исполняет ![]() |
|
![]() |
#11 |
Участник
|
Хорошая идея :-)
Но фишка в том, что для работы по таймеру нужно где-то хранить ссылку на класс, иначе его мусорщик соберет. Другого места, как GlobalCash я не вижу. Но если в application.startup() добавить код создания класса и помещения ссылки на него к кэш, таймер почему-то не работате (или ссылка куда-то девается). Хотя если потом руками запустить, то все хорошо работает. В общем, встает проблема: как это запустить при открытии клиента. |
|
![]() |
#12 |
Модератор
|
Цитата:
Изначально опубликовано kalex
Хорошая идея :-) Но фишка в том, что для работы по таймеру нужно где-то хранить ссылку на класс, иначе его мусорщик соберет. Другого места, как GlobalCash я не вижу. ![]() загляните в его classDeclaration |
|
![]() |
#13 |
Участник
|
Цитата:
Изначально опубликовано kalex
Хорошая идея :-) Но фишка в том, что для работы по таймеру нужно где-то хранить ссылку на класс, иначе его мусорщик соберет. Другого места, как GlobalCash я не вижу. Но если в application.startup() добавить код создания класса и помещения ссылки на него к кэш, таймер почему-то не работате (или ссылка куда-то девается). Хотя если потом руками запустить, то все хорошо работает. В общем, встает проблема: как это запустить при открытии клиента. http://axforum.info/forums/showthrea...0&pagenumber=3 и даже пример приведен. У меня всё работает. Возможно что проблема может крытся в том где создаётся объект-резидент (вызывающий таймер) - на клиенте или на сервере в 3-х звеньевой конфигурации. Делайте его с "run on = client". |
|
![]() |
#14 |
Участник
|
Спасибо!
Действительно, класс должен жить на клиенте. |
|