Skip to content

Commit

Permalink
feat: delayed coverage handle (#134)
Browse files Browse the repository at this point in the history
  • Loading branch information
QizhengMo authored Dec 19, 2023
1 parent 6d19a8c commit b1efd77
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package com.arextest.storage.beans;

import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.ThreadPoolExecutor.AbortPolicy;
import java.util.concurrent.ThreadPoolExecutor.DiscardPolicy;
import java.util.concurrent.TimeUnit;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
Expand All @@ -14,12 +19,10 @@
public class ExecutorsConfiguration implements Thread.UncaughtExceptionHandler {

@Bean
public ThreadPoolExecutor coverageHandlerExecutor() {
return new ThreadPoolExecutor(4, 4,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<>(),
public ScheduledExecutorService coverageHandleDelayedPool() {
return new ScheduledThreadPoolExecutor(4,
createThreadFac("coverage-handler-%d"),
new ThreadPoolExecutor.CallerRunsPolicy());
new DiscardPolicy());
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,9 +167,11 @@ public boolean removeByRecordId(String providerName, String recordId) {
LOGGER.warn("Could not found provider for {}", providerName);
return false;
}
long deleteCount = 0;
for (MockCategoryType categoryType : providerFactory.getCategoryTypes()) {
repositoryWriter.removeBy(categoryType, recordId);
deleteCount += repositoryWriter.removeBy(categoryType, recordId);
}
LOGGER.info("removeByRecordId deleted {} mockers for recordId: {}", deleteCount, recordId);
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
import com.arextest.storage.service.MockSourceEditionService;
import com.arextest.storage.trace.MDCTracer;
import java.util.Optional;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
Expand All @@ -30,7 +31,7 @@ public class CoverageMockerHandler implements MockerSaveHandler<AREXMocker> {
private MockSourceEditionService mockSourceEditionService;
private CoverageRepository coverageRepository;
private CacheProvider cacheProvider;
private ThreadPoolExecutor coverageHandlerExecutor;
private ScheduledExecutorService coverageHandleDelayedPool;
private ScenePoolFactory scenePoolFactory;

@Override
Expand Down Expand Up @@ -67,11 +68,10 @@ public void handle(AREXMocker coverageMocker) {
}

Optional.ofNullable(task).ifPresent((t) -> {
coverageHandlerExecutor.submit(t);
coverageHandleDelayedPool.schedule(t, 5, TimeUnit.SECONDS);
LOGGER.info(
"CoverageMockerHandler submitted async task, recordId: {}, pathKey: {}, pool queue size: {}",
coverageMocker.getRecordId(), coverageMocker.getOperationName(),
coverageHandlerExecutor.getQueue().size());
"CoverageMockerHandler submitted async task, recordId: {}, pathKey: {}",
coverageMocker.getRecordId(), coverageMocker.getOperationName());
});
}

Expand Down

0 comments on commit b1efd77

Please sign in to comment.