@Override
    public void doClean() {
        ServiceManager serviceManager = ServiceManager.getInstance();
        // Parallel flow opening threshold
        int parallelSize = 100;
        
        for (String each : serviceManager.getAllNamespaces()) {
            Set<Service> services = serviceManager.getSingletons(each);
            Stream<Service> stream = services.size() > parallelSize ? services.parallelStream() : services.stream();
            stream.forEach(this::cleanEmptyService);
        }
    }
@Test
    void testDoClean() {
        try {
            Mockito.when(clientServiceIndexesManager.getAllClientsRegisteredService(Mockito.any())).thenReturn(Collections.emptyList());
            
            Mockito.when(service.getLastUpdatedTime()).thenReturn(0L);
            
            emptyServiceAutoCleanerV2.doClean();
        } catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
    }