Made cron date time trigger more robust

This commit is contained in:
Ziver Koc 2021-08-28 15:32:12 +02:00
parent 870be06255
commit 17438db7a2

View file

@ -2,6 +2,7 @@ package se.hal.trigger;
import se.hal.intf.HalTrigger; import se.hal.intf.HalTrigger;
import zutil.CronTimer; import zutil.CronTimer;
import zutil.ObjectUtil;
import zutil.ui.conf.Configurator; import zutil.ui.conf.Configurator;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -28,6 +29,13 @@ public class DateTimeTrigger implements HalTrigger,Configurator.PostConfiguratio
@Override @Override
public void postConfigurationAction(Configurator configurator, Object obj) { public void postConfigurationAction(Configurator configurator, Object obj) {
if (ObjectUtil.isEmpty(minute)) minute = "*";
if (ObjectUtil.isEmpty(hour)) hour = "*";
if (ObjectUtil.isEmpty(dayOfMonth)) dayOfMonth = "*";
if (ObjectUtil.isEmpty(month)) month = "*";
if (ObjectUtil.isEmpty(dayOfWeek)) dayOfWeek = "*";
if (ObjectUtil.isEmpty(year)) year = "*";
cronTimer = new CronTimer(minute, hour, dayOfMonth, month, dayOfWeek, year); cronTimer = new CronTimer(minute, hour, dayOfMonth, month, dayOfWeek, year);
reset(); reset();
} }
@ -37,7 +45,7 @@ public class DateTimeTrigger implements HalTrigger,Configurator.PostConfiguratio
if (cronTimer == null) if (cronTimer == null)
return false; return false;
// have we passed the majority of the minute? then get next timeout // have we passed the majority of the minute? then get next timeout
if (System.currentTimeMillis()-timeOut > 50*1000) if (System.currentTimeMillis() - timeOut > 50*1000)
reset(); reset();
return timeOut <= System.currentTimeMillis(); return timeOut <= System.currentTimeMillis();
} }