Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: White Noise on Апреля 09, 2014, 01:35:46 pm

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

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

Как быть ?
Title: Re: Timer в мусорку ничайно ))))
Post by: REboev on Апреля 09, 2014, 05:26:56 pm
Добавлю своих 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, 2014, 03:20:13 pm
Whine Noise, ваша проблема пока не ясна, воспроизвести её у нас не удаётся.

REboev, функция вызывается на самом деле нужное количество раз, просто у вас используется signal::output и именно она работает единожды. Используйте функцию signal::outputMultiple.
Title: Re: Реально не работает таймер как положено!!! (касаемо милисекунд)
Post by: White Noise on Апреля 18, 2014, 06:30:39 am
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, 2014, 12:27:17 pm
Ошибка найдена, правлю.
Title: Re: Реально не работает таймер как положено!!! (касаемо милисекунд)
Post by: REboev on Апреля 23, 2014, 05:59:53 pm
REboev, функция вызывается на самом деле нужное количество раз, просто у вас используется signal::output и именно она работает единожды. Используйте функцию signal::outputMultiple.

Спасибо Heller