Scheduler implements Closeable { public void execute(@NotNull String name, @NotNull Runnable task) { executor.execute(new SafeRunnable(name, task)); } Scheduler(@Nullable String name); void execute(@NotNull String name, @NotNull Runnable task); void scheduleOnce(
            @NotNull String name,
            long delay,
            @NotNull TimeUnit unit,
            @NotNull Runnable task); void scheduleAtFixedRate(
            @NotNull String name,
            long period,
            @NotNull TimeUnit unit,
            @NotNull Runnable task); void scheduleWithFixedDelay(
            @NotNull String name,
            long delay,
            @NotNull TimeUnit unit,
            @NotNull Runnable task); @Override void close();  }
@Test public void execute() throws Exception { TestTask task = new TestTask(1); scheduler.execute("execute", task); assertTrue(task.await()); assertEquals("execute", task.getThreadName()); }