mod/notification-email: reference scheduler from variable

This commit is contained in:
Christian Hesse 2022-11-22 21:09:27 +01:00
parent c2a29da9f2
commit ab3047ee82

View file

@ -19,6 +19,7 @@
:local AllDone true;
:local QueueLen [ :len $EmailQueue ];
:local Scheduler [ /system/scheduler/find where name=$0 ];
:if ([ /tool/e-mail/get last-status ] = "in-progress") do={
$LogPrintExit2 debug $0 ("Sending mail is currently in progress, not flushing.") false;
@ -35,11 +36,11 @@
:return false;
}
:if ([ :len [ /system/scheduler/find where name=$0 ] ] > 0 && $QueueLen = 0) do={
:if ([ :len $Scheduler ] > 0 && $QueueLen = 0) do={
$LogPrintExit2 warning $0 ("Flushing E-Mail messages from scheduler, but queue is empty.") false;
}
/system/scheduler/set interval=([ $EitherOr $QueueLen 1 ] . "m") [ find where name=$0 ];
/system/scheduler/set interval=([ $EitherOr $QueueLen 1 ] . "m") $Scheduler;
:foreach Id,Message in=$EmailQueue do={
:if ([ :typeof $Message ] = "array" ) do={
@ -76,10 +77,10 @@
}
:if ($AllDone = true && $QueueLen = [ :len $EmailQueue ]) do={
/system/scheduler/remove [ find where name=$0 ];
/system/scheduler/remove $Scheduler;
:set EmailQueue;
} else={
/system/scheduler/set interval=1m [ find where name=$0 ];
/system/scheduler/set interval=1m $Scheduler;
}
}