|
|
@ -54,6 +54,7 @@ import com.epmet.service.stats.DimAgencyService; |
|
|
|
import com.epmet.service.stats.DimCustomerPartymemberService; |
|
|
|
import com.epmet.service.stats.DimCustomerService; |
|
|
|
import com.epmet.util.DimIdGenerator; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
@ -64,9 +65,7 @@ import java.math.BigDecimal; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.ExecutionException; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
import java.util.concurrent.Future; |
|
|
|
import java.util.concurrent.*; |
|
|
|
|
|
|
|
@RequestMapping("demo") |
|
|
|
@RestController |
|
|
@ -1099,6 +1098,12 @@ public class DemoController { |
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
|
|
|
|
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() |
|
|
|
.setNameFormat("ScreenExtractServiceImpl-pool-%d").build(); |
|
|
|
ExecutorService threadPool = new ThreadPoolExecutor(3, 6, |
|
|
|
10L, TimeUnit.MINUTES, |
|
|
|
new LinkedBlockingQueue<>(500), namedThreadFactory, new ThreadPoolExecutor.CallerRunsPolicy()); |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private ScreenProjectCategoryGridAndOrgDailyService screenProjectCategoryGridAndOrgDailyService; |
|
|
|
|
|
|
@ -1113,14 +1118,22 @@ public class DemoController { |
|
|
|
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){ |
|
|
|
List<String> daysBetween = DateUtils.getDaysBetween(startDate, endDate); |
|
|
|
daysBetween.forEach(d -> { |
|
|
|
screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,d); |
|
|
|
screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,d); |
|
|
|
threadPool.submit(() -> { |
|
|
|
screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,d); |
|
|
|
}); |
|
|
|
threadPool.submit(() -> { |
|
|
|
screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,d); |
|
|
|
}); |
|
|
|
result.add(d); |
|
|
|
redisUtils.hSet(RedisKeys.getBackDoorbizExcuteResult("gridandorgdailynew"),customerId,result,3*24*60*60L); |
|
|
|
}); |
|
|
|
}else { |
|
|
|
screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,dateId); |
|
|
|
screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,dateId); |
|
|
|
threadPool.submit(() -> { |
|
|
|
screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,dateId); |
|
|
|
}); |
|
|
|
threadPool.submit(() -> { |
|
|
|
screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,dateId); |
|
|
|
}); |
|
|
|
result.add(dateId); |
|
|
|
redisUtils.hSet(RedisKeys.getBackDoorbizExcuteResult("gridandorgdailynew"),customerId,result,3*24*60*60L); |
|
|
|
} |
|
|
|