Итак, приступим.
Рис.1. Mikrotik Routerboard, задержка работы скрипта на 2 секунды.
:local a [/sys clock get time]; :delay 2; :local b [/sys clock get time]; :put $a; :put $b; :local c ($b-$a); :put $c;
Рассмотрим подробнее работу скрипта:
:local a [/sys clock get time]; - извлекаем в переменную $а текущее время.
После определения текущего времени выполняется скрипт. В данном примере :delay 2; приостановил скрипт на две секунды.
:local b [/sys clock get time]; - после окончания работы скрипта в переменную $b извлекаем данные о текущем времени.
В результате у нас есть две переменные со значением времени до начала работы скрипта и времени окончания работы скрипта.
:put $a; :put $b; :local c ($b-$a); :put $c; - переменная $с определяет продолжительность работы скрипта. Значение переменной $с получаем вычитанием переменной $a из переменной $b. То есть, из конечного времени вычитаем начальное время.
Рис.2. Mikrotik Routerboard, задержка работы скрипта на 39 секунд.
:local a [/sys clock get time]; :delay 39; :local b [/sys clock get time]; :put $a; :put $b; :local c ($b-$a); :put $c;
Рис.3. Mikrotik Routerboard, работа цикла for.
:local a [/sys clock get time]; :for i from=1 to=20000 do={:put $i;}; :local b [/sys clock get time]; :put $a; :put $b; :local c ($b-$a); :put $c;
В этом примере мы вместо приостановки скрипта выполняем цикл for, который в переменную $i заносит значения от 1 до 20000. Значение выводится на экран.
Рис.4. Mikrotik Routerboard, работа цикла for. Результат работы.
Mikrotik RouterBoard RB435G выполнил данный скрипт за 5 секунд. В случае нескольких возможных реализаций скрипта, можно выбрать наилучший в плане продолжительности выполнения. Тем самым мы снизим нагрузку на процессор Mikrotik Routerboard.
Евгений Рудченко специально для ASP24.




