docs: void processMigratePartitionLeaderTask(MigratePartitionLeaderMessage message) {
          synchronized(m_lock) {
              //start MigratePartitionLeader service
              if (message.startMigratingPartitionLeaders()) {
                  if (m_migratePartitionLeaderExecutor == null) {
                      m_migratePartitionLeaderExecutor = Executors.newSingleThreadScheduledExecutor(CoreUtils.getThreadFactory("MigratePartitionLeader"));
                      final int interval = Integer.parseInt(System.getProperty("MIGRATE_PARTITION_LEADER_INTERVAL", "1"));
                      final int delay = Integer.parseInt(System.getProperty("MIGRATE_PARTITION_LEADER_DELAY", "1"));
                      m_migratePartitionLeaderExecutor.scheduleAtFixedRate(
                              () -> startMigratePartitionLeader(message.isForStopNode()),
                              delay, interval, TimeUnit.SECONDS);
                  }
                  hostLog.info("MigratePartitionLeader task is started.");
                  return;
              }
  
              //stop MigratePartitionLeader service
              if (m_migratePartitionLeaderExecutor != null ) {
                  m_migratePartitionLeaderExecutor.shutdown();
                  m_migratePartitionLeaderExecutor = null;
              }
          }
          hostLog.info("MigratePartitionLeader task is stopped.");
      }