Плагин TaskOptions.spf

Обсуждение программ nnCron и nnCron LITE

Плагин TaskOptions.spf

Postby dothen » Mon, 11 Mar 2019, 21:41

Code: Select all
\ Файл:       taskoptions.spf
\ Автор:      dothen
\ Дата:       11.03.2019
\ Версия:     1.0
\ Описание: Дополнительные опции для задачи.

\ RunImmediately - (Опция) Задача будет запущена сразу после перечитывания кронтабов.

\ RunAfterLoad: n - (Спецификатор) Добавляет спецификатор времени Time: (текущее время плюс n минут)
\                   В задачу можно включать несколько слов RunAfterLoad:
\                   Внимание! Если в задаче есть спецификаторы Watch*, тогда смотри опцию Also

\ Пример:
\ Перечитали кронтабы 31 декабря в 23 часа 58 минут:
\ #( test_RunAfterLoad
\ RunAfterLoad: 1   \ Установит  Time: 59 23 31 12 * *
\ RunAfterLoad: 3   \ Установит  Time: 1 0 1 1 * *
\ RunAfterLoad: 80  \ Установит  Time: 18 1 1 1 * *
\ RunImmediately    \ Запуск сразу после перечитывания кронтабов.
\ Action:
\ ...
\ )#

0x100000 CONSTANT CF-RUN \ Флаг, добавляется в поле CRON-FLAGS структуры CRON-NODE

: RunImmediately ( -- ) end-def CF-RUN CRON-FLAG1 ; IMMEDIATE

\ Запускает задачи у которых установлен флаг CF-RUN
: (RunImmediately) ( -- )
    CRON-LIST
    BEGIN @ ?DUP WHILE
      DUP CRON-FLAGS @ CF-RUN AND?
      OVER CRON-FLAGS @ CF-ACTIVE AND? AND
      IF SP@ LAUNCH THEN
    REPEAT
;

: AfterCrontabLoading ( -- ) (RunImmediately) AfterCrontabLoading ;

0 VALUE run.M
0 VALUE run.D
0 VALUE run.h
0 VALUE run.m

: RunAfterLoad: ( "ccc" -- )
    get-number 1 MAX 500000 MIN >R
    Year@ Mon@ Day@ Hour@ Min@ R> MINUTE+ TO run.m TO run.h TO run.D TO run.M DROP
    S" Time: %run.m% %run.h% %run.D% %run.M% * *" EVAL-SUBST EVALUATE
; IMMEDIATE

dothen
 
Posts: 208
Joined: Mon, 16 Mar 2015, 04:58

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Google [Bot] and 2 guests

cron