Эмуляция крон внутри lua

Страницы: 1
RSS
Эмуляция крон внутри lua
 
Есть задача управлять запуском скрипта по расписанию указанному в параметрах. На подобие как это сделано в cron linux.
Может кто-нибудь подсказать или ткнуть в раздел документации где про этом можно почитать?
 
простейший вариант:  sleep +  текстовый файл с расписанием
 
Можно в основном цикле сравнивать локальное время компа с вашими требованиями к работе скрипта по времени.
При соответствии выполнять функционал, при несоответствии крутить пустой цикл.
 
Цитата
BlaZed написал:
Можно в основном цикле сравнивать локальное время компа с вашими требованиями к работе скрипта по времени.
При соответствии выполнять функционал, при несоответствии крутить пустой цикл.
вместо пустого цикла используйте
sleep(время ожидания до следующего запуска)
 
Цитата
nikolz написал:
Цитата
BlaZed написал:
Можно в основном цикле сравнивать локальное время компа с вашими требованиями к работе скрипта по времени.
При соответствии выполнять функционал, при несоответствии крутить пустой цикл.
вместо пустого цикла используйте
sleep(время ожидания до следующего запуска)
Естественно пустой цикл со слипом, я просто не стал очевидные вещи расписывать
 
Цитата
BlaZed написал:
Цитата
nikolz написал:
 
Цитата
BlaZed  написал:
Можно в основном цикле сравнивать локальное время компа с вашими требованиями к работе скрипта по времени.
При соответствии выполнять функционал, при несоответствии крутить пустой цикл.
 вместо пустого цикла используйте
sleep(время ожидания до следующего запуска)
Естественно пустой цикл со слипом, я просто не стал очевидные вещи расписывать
естественно, если в цикле что-то исполняется то это уже не пустой.
------------------
более того, нет надобности еще в одном цикле в main.
 
если знаете, что такое системный event и timer, то можно использовать их.
 
Цитата
Андрей написал:
Может кто-нибудь подсказать или ткнуть в раздел документации где про этом можно почитать?

Код варианта реализации таймера:
Код
-------------                                    #### !! Вариант реализации таймерных событий            ----
function OnStop()
 isRun=false
end;

local function f1(i)       -- функция обработки таймерных событий ---
 message("Обрабатываем интервал  1:  "..i.." сек")
end;

local function f2(i)
 message("Обрабатываем интервал 2:   "..i.." сек")
end;

local function f3(i)
 message("Обрабатываем интервал 3:  "..i.." сек")
end;

isRun=true;

function main()
 local x
 ----  !! Таймеры задаются в виде таблицы {<Интервал таймера (в секундах) >, <Функция обработки таймера>, <Вычисляемое время запуска функции>}
 t={{4, f1, 0}, {17, f2, 0},{35, f3, 0} }    -- Начальный запуск таймера можно задать в третьем элементе таймера. Можно добавлять таймеров  сколько надо --
 x=os.time()
 for i=1,#t do t[i][3] = x + t[i][1]  end
 message("Начало работы")
 while isRun do
   x=os.time()
   for i=1,#t do 
     if  x >= t[i][3] then 
         t[i][3] = x + t[i][1]   --- !! Если существенна обработка пропущенных интервалов, то:t [i][3] = t [i][3] + t[i][1]   ----
         t[i][2] ( t[i][1] )
     end
   end
   sleep(100)  -- разрешение таймера млсек.  ---
 end
end
 
Всем большое спасибо за идеи, пойду пробовать.
 
https://forum.quik.ru/messages/forum17/message65896/topic7644/#message65896
Страницы: 1
Читают тему
Наверх