public static RuntimeException propagate(Throwable throwable) {
    logger.error("Run thread failed", throwable);
    Throwables.throwIfUnchecked(throwable);
    throw new RuntimeException(throwable);
  }
A wrapper method to have the same semantic with {@link
ScheduledExecutorService#scheduleWithFixedDelay(Runnable, long, long, TimeUnit)}, except for
logging an error log when any uncaught exception happens.

@param executor the ScheduledExecutorService instance.
@param command same parameter in {@link
    ScheduledExecutorService#scheduleWithFixedDelay(Runnable, long, long, TimeUnit)}.
@param initialDelay same parameter in {@link
    ScheduledExecutorService#scheduleWithFixedDelay(Runnable, long, long, TimeUnit)}.
@param delay same parameter in {@link ScheduledExecutorService#scheduleWithFixedDelay(Runnable,
    long, long, TimeUnit)}.
@param unit same parameter in {@link ScheduledExecutorService#scheduleWithFixedDelay(Runnable,
    long, long, TimeUnit)}.
@return the same return value of {@link
    ScheduledExecutorService#scheduleWithFixedDelay(Runnable, long, long, TimeUnit)}.
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/ScheduledExecutorUtil.java