@Override
    public void run() {
        if (!redoService.isConnected()) {
            LogUtils.NAMING_LOGGER.warn("Grpc Connection is disconnect, skip current redo task");
            return;
        }
        try {
            redoForInstances();
            redoForSubscribes();
        } catch (Exception e) {
            LogUtils.NAMING_LOGGER.warn("Redo task run with unexpected exception: ", e);
        }
    }
@Test
    void testRunRedoRegisterBatchInstance() throws NacosException {
        BatchInstanceRedoData redoData = BatchInstanceRedoData.build(SERVICE, GROUP,
                Collections.singletonList(INSTANCE));
        redoData.setRegistered(false);
        redoData.setUnregistering(false);
        redoData.setExpectedRegistered(true);
        Set<InstanceRedoData> mockData = new HashSet<>();
        mockData.add(redoData);
        when(redoService.findInstanceRedoData()).thenReturn(mockData);
        redoTask.run();
        verify(clientProxy).doBatchRegisterService(SERVICE, GROUP, redoData.getInstances());
    }