Rev 30315 | Rev 30355 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.smartdukaan.cron.scheduled;import com.spice.profitmandi.dao.entity.fofo.ActivatedImei;import com.spice.profitmandi.dao.repository.fofo.ActivatedImeiRepository;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.time.LocalDate;import java.time.LocalDateTime;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;@Servicepublic class OppoImeiActivationService {private static final Logger LOGGER = LogManager.getLogger(OppoImeiActivationService.class);@AutowiredActivatedImeiRepository activatedImeiRepository;public void updateActivationDate(List<String> imeis) throws Exception {//TODO:Change bucket sizeint bucketSize = 25;int chromeThreads = imeis.size() / bucketSize;ExecutorService excecutorService = Executors.newFixedThreadPool(chromeThreads);List<CheckOppoWarrantyTask> tasks = new ArrayList<>();for (int i = 0; i < imeis.size() / bucketSize; i++) {CheckOppoWarrantyTask task = new CheckOppoWarrantyTask(imeis);tasks.add(task);}List<Future<Map<String, LocalDate>>> futures = excecutorService.invokeAll(tasks);List<String> foundImeis = new ArrayList<>();futures.stream().forEach(x -> {try {x.get().entrySet().forEach(y -> {foundImeis.add(y.getKey());System.out.println("Serial Number " + y.getKey() + "Date " + y.getValue());ActivatedImei activatedImei = activatedImeiRepository.selectBySerialNumber(y.getKey());if (activatedImeiRepository.selectBySerialNumber(y.getKey()) == null) {activatedImei = new ActivatedImei();activatedImei.setSerialNumber(y.getKey());activatedImei.setCreateTimestamp(LocalDateTime.now());activatedImeiRepository.persist(activatedImei);}if (y.getValue() != null) {activatedImei.setActivationTimestamp(y.getValue().atStartOfDay());}});} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}});imeis.removeAll(foundImeis);LOGGER.info("Could not break captcha for imeis - " + foundImeis);}}