I did some more experimentation, and it does seem that after a service restart (and a re-connect in the Admin Console) that the system attempts to bring things up to date. It did not work 100%, however, I still ended up in a situation where the enabled Scheduled Task had a Next Run datetime that was in the past, and even allowing some time to pass did not resolve that.
I believe my experimental setup may have had something to do with this. I created a ST that runs once per minute; all it does is use LogMessage() to write the current date and time to the log. Perhaps because of the frequency, things never really got a good chance to catch up.
Here's what I did:
- Let the ST occur a few times so that there were several log entries.
- Closed the Admin Console.
- Stopped the Softerra Adaxes Service.
- Waited for two or three minutes (i.e. a couple of times were missed).
- Started the Softerra Adaxes Service.
- Opened the Admin Console, and let it reconnect with the service.
- Examined the Logging section, and also looked at the ST's Properties, specifically its "Next run" datetime.
There were one or two new entries in the Logging section, which occurred after I restarted the service. This shows an attempt to catch up on the missed runs that ought to have occurred during the down time. However, the ST's Properties pane showed that its Next run datetime was already in the past (although it was scheduled for after the restart of the service). Therefore, the ST did not run again, even after waiting for some time. Disabling and re-enabling the ST straightened that out because that recalculated the Next run datetime to a point in the future.
So it seems that Adaxes tries its best to catch up on missing STs, but if there's another missed time while it is doing that, the problem I originally mentioned re-occurs.
I don't think this is a serious problem, because we have no intention of scheduling once-per-minute tasks; that was done only for experimental purposes. When the scheduled tasks occur at a more reasonable interval, like once per hour or once per day, it seems likely that things will work as expected.
The big takeaway for me is that Adaxes does indeed attempt to "catch up" on missed Scheduled Tasks. That's an important thing to realize.