== spring.task.scheduling.pool.size=4 ==

over 8 seconds, three @Scheduled methods on one application
  slow()     fixedRate 2000 ms, sleeps 1800 ms : 5 executions
  fast()     fixedRate  200 ms                 : 41 executions
  throwing() fixedRate  300 ms, always throws  : 27 executions
  distinct scheduler threads                   : 4 [scheduling-1, scheduling-2, scheduling-3, scheduling-4]

  longest gap between two fast() executions    : 200 ms   (200 ms was the schedule)
  fast() executions that started within 20 ms
  of the previous one (the catch-up burst)     : 0

throwing() kept its schedule after every failure. Spring wraps a scheduled
method in TaskUtils.LOG_AND_SUPPRESS_ERROR_HANDLER, so each exception is
logged by o.s.s.s.TaskUtils$LoggingErrorHandler as "Unexpected error
occurred in scheduled task" and then discarded. A raw
ScheduledExecutorService would have cancelled the task at the first one.

