Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: White Noise on 09.04.2014, 13:35:46

Title: Реально не работает таймер как положено!!! (касаемо милисекунд)
Post by: White Noise on 09.04.2014, 13:35:46
Heller, пожалуйста верните возможность таймера  - работать по заявленному хотя бы 100 млсек.  Похоже на новых версиях (у меня  5.08.336.18 rev 55 ATF 1.20) вы помнится над удалением мусора работали,....может и таймер чуток "подзадели" ....

В общем сейчас  не меньше секунды = 1000 млс. работает,  даже если принудительно ставишь положенные 100.

Как быть ?
Title: Re: Timer в мусорку ничайно ))))
Post by: REboev on 09.04.2014, 17:26:56
Добавлю своих 5 копеек по таймеру.
версия 5.08.336.01 rev 55 ATF 1.20

Пример из http://www.transaq.ru/dokuwiki/atf:время?s[]=timer
+Немного доработанный.

Таймер отрабатывает всего один раз.

static count = 0;
static timerID = 0;
 
function f()
{
  count += 1;
  if (count == 5) {
    delTimer(timerID);
  }
  else                                             //<- Добавил я
  {                                                 //<- Добавил  я
    signal::output("Timer");             //<- Добавил я
  }                                                 //<- Добавил я

}
 
function init()
{
  timerID = setTimer("f", 6000, TIMER_PERIODICALLY);            //Изменил 60000 на 6000
}
Title: Re: Реально не работает таймер как положено!!! (касаемо милисекунд)
Post by: Heller on 16.04.2014, 15:20:13
Whine Noise, ваша проблема пока не ясна, воспроизвести её у нас не удаётся.

REboev, функция вызывается на самом деле нужное количество раз, просто у вас используется signal::output и именно она работает единожды. Используйте функцию signal::outputMultiple.
Title: Re: Реально не работает таймер как положено!!! (касаемо милисекунд)
Post by: White Noise on 18.04.2014, 06:30:39
Heller, я думаю вы поняли меня про что я. А именно, данный пример должен выдавать ровно десять (10) сообщений в окно ATF в одну секунду, согласны ?

//------------------------------------------------------------------------------------------------------------------------------------------------
static timer;

function f() {  signal::outputMultiple( " Не маловато-ли один раз в секунду при поставленных 100 млс.... ");   }

 
function init(){timer = setTimer("f", 100, TIMER_PERIODICALLY);  }       

//------------------------------------------------------------------------------------------------------------------------------------------------
Title: Re: Реально не работает таймер как положено!!! (касаемо милисекунд)
Post by: Heller on 21.04.2014, 12:27:17
Ошибка найдена, правлю.
Title: Re: Реально не работает таймер как положено!!! (касаемо милисекунд)
Post by: REboev on 23.04.2014, 17:59:53
REboev, функция вызывается на самом деле нужное количество раз, просто у вас используется signal::output и именно она работает единожды. Используйте функцию signal::outputMultiple.

Спасибо Heller