Implementation of {@link Scheduler} based on JDK's {@link ScheduledThreadPoolExecutor}.
While use of {@link ScheduledThreadPoolExecutor} creates futures that will not be used,it has the advantage of allowing to set a property to remove cancelled tasks from its queue even if the task did not fire, which provides a huge benefit in the performance of garbage collection in young generation.