Transaq
СБО "Transaq" => Подсистема ATF => Topic started by: Олег on 03.07.2013, 13:37:15
-
Сейчас смастерил пробный скрипт, в котором используется таймер.
Про Интру как-то и не вспомнил, начал сразу в боевом транзаке экспериментировать.
Сначала одна проблема вылезла, потом другая.
Короче, я несколько раз этот индикатор удалял, а потом снова кидал на то же самое окно. Интервал таймера 1 секунда (periodically).
Вопрос возможно весьма примитивный, но все-таки...
Одним словом, насколько эти таймеры "живучи", что надо сделать, чтобы их "убить"?
Достаточно ли просто удалить данный индикатор с данного графика?
Все-таки версия боевая, поэтому не хочется, чтобы фантомные таймеры жрали ресурсы.
-
Вы таймер через переменную делаете ?
-
Вообще таймеры убиваются каждый раз при убивании индикатора. Если надо убить раньше, то поможет функция delTimer.
-
Вы таймер через переменную делаете ?
Да.
Вообще таймеры убиваются каждый раз при убивании индикатора. Если надо убить раньше, то поможет функция delTimer.
Меня смутило следующее.
Вот такой пробный скрипт:
static X;
static timerID;
function f()
{
X = X;
}
function init()
{
timerID = setTimer("f", 1000, TIMER_PERIODICALLY);
}
function calc()
{
line [0] = 0;
}
Несколько раз подряд добавляем и удаляем этот "индикатор" на одном и том же графике. Потом просим Транзак показать переменные ATF и он нам показывает "timerID: 4". Ну вот и сложилось впечатление, что это уже четвертый таймер, привязанный к этому графику, и причем, все остальные (3 штуки) живы-здоровы и функционируют в фантомном режиме.
-
2 Олег
Не переживайте запускайте сколько угодно. У меня на боевой системе каждые 15 мин запускается по три таймера, ради интереса сейчас в логах посмотрел результат на вечер
03.07.13;23:45:08;Set_Activation_Delay: FillAndSetStopOrder; delay: 500; timerID:142
Ни какого торможения не замечено (компутер немощный: Р4-1,8Ггц, 500Мб), работает пара Транзаков и Интра одновременно и еще несколько прикладных программ
-
timerID:142 - это не количество таймеров на графике, это количество таймеров во всей системе, а т.е. во всем транзаке, - может быть открыто тысячи окон, и на каждом окне работать по 50 таймеров,...и у каждого таймера (именно для системы транзак ) просто должен быть свой единственный идентификатор (опять же на протяжении сесси открытого транзака). Для чего ? для того чтобы не сбиться ибо событие таймера системное, синхронное ,.... А ведь графики могут и закрываться, новые открываться, таймеры добавляться,...и что получается - как за ними уследишь ? причем идентификатор - это не имя которое присвоено, а именно то порядковое число которое присвоено в определенный момент времени, по шкале 1.2.3.4.5.6.7.8.9.10.11.12....
-
bugem и White Noise, спасибо за разъяснение.
Раз Heller не поправляет, значит, наверно, все правильно.
-
Да, всё правильно, поправлять нечего :)