public boolean retry() {
        return doHandleMetadataCollection(failedReports);
    }
@Test
    void testRetry() throws ClassNotFoundException {
        String interfaceName = "org.apache.dubbo.metadata.store.RetryTestService";
        String version = "1.0.0.retry";
        String group = null;
        String application = "vic.retry";
        URL storeUrl = URL.valueOf("retryReport://" + NetUtils.getLocalAddress().getHostName()
                + ":4444/org.apache.dubbo.TestServiceForRetry?version=1.0.0.retry&application=vic.retry");
        RetryMetadataReport retryReport = new RetryMetadataReport(storeUrl, 2, applicationModel);
        retryReport.metadataReportRetry.retryPeriod = 400L;
        URL url = URL.valueOf("dubbo://" + NetUtils.getLocalAddress().getHostName()
                + ":4444/org.apache.dubbo.TestService?version=1.0.0&application=vic");
        Assertions.assertNull(retryReport.metadataReportRetry.retryScheduledFuture);
        assertEquals(0, retryReport.metadataReportRetry.retryCounter.get());
        assertTrue(retryReport.store.isEmpty());
        assertTrue(retryReport.failedReports.isEmpty());

        ThreadPoolExecutor reportCacheExecutor = (ThreadPoolExecutor) retryReport.getReportCacheExecutor();
        ScheduledThreadPoolExecutor retryExecutor = (ScheduledThreadPoolExecutor)
                retryReport.getMetadataReportRetry().getRetryExecutor();

        long completedTaskCount1 = reportCacheExecutor.getCompletedTaskCount();
        long completedTaskCount2 = retryExecutor.getCompletedTaskCount();
        storeProvider(retryReport, interfaceName, version, group, application);
        await().until(() -> reportCacheExecutor.getCompletedTaskCount() > completedTaskCount1);

        assertTrue(retryReport.store.isEmpty());
        assertFalse(retryReport.failedReports.isEmpty());
        assertNotNull(retryReport.metadataReportRetry.retryScheduledFuture);

        await().until(() -> retryExecutor.getCompletedTaskCount() > completedTaskCount2 + 2);
        assertNotEquals(0, retryReport.metadataReportRetry.retryCounter.get());
        assertTrue(retryReport.metadataReportRetry.retryCounter.get() >= 3);
        assertFalse(retryReport.store.isEmpty());
        assertTrue(retryReport.failedReports.isEmpty());
    }