reschedule next check when no items due to be checked

Previously if there were no items due to be checked, then the monitor would still run at every check interval.  With this update, if there are no items due to be checked, then the monitor will reschedule itself so that it will not run again until the next item is due.