optimize updating
This commit is contained in:
parent
669236e696
commit
f083716071
2 changed files with 15 additions and 2 deletions
|
|
@ -165,6 +165,7 @@ public class SignalService {
|
|||
public boolean updateFlags(Map<Integer, PhoneFidMap> fidsMap, Integer packageId) {
|
||||
log.info("Start calculating flags for subjects batch. PackageId: {}", packageId);
|
||||
Map<Integer, FlagsService.FlagsData> flagsDataMap = flagsService.findFlags(fidsMap.keySet().stream().toList());
|
||||
List<PhoneFidMap> subjectToUpdate = new ArrayList<>();
|
||||
for (Map.Entry<Integer, FlagsService.FlagsData> entry : flagsDataMap.entrySet()) {
|
||||
Integer fid = entry.getKey();
|
||||
FlagsService.FlagsData flagsData = entry.getValue();
|
||||
|
|
@ -175,8 +176,20 @@ public class SignalService {
|
|||
phoneFidMap.setFlag90days(flagsData.getFlag90days());
|
||||
phoneFidMap.setCalculatedAt(LocalDateTime.now());
|
||||
|
||||
phoneFidMapMapper.updatePhoneFid(phoneFidMap);
|
||||
subjectToUpdate.add(phoneFidMap);
|
||||
}
|
||||
|
||||
log.debug("Start updating subject's batch");
|
||||
if (!subjectToUpdate.isEmpty()) {
|
||||
int updateBatchSize = 7000; // 9 параметров на одну запись для обновления. Максимальное количество параметров ~65000
|
||||
for (int j = 0; j < subjectToUpdate.size(); j += updateBatchSize) {
|
||||
int endIndex = Math.min(j + updateBatchSize, subjectToUpdate.size());
|
||||
phoneFidMapService.updatePhoneFidMaps(subjectToUpdate.subList(j, endIndex));
|
||||
log.trace("Updated fids and flags for subject's batch from: {} to: {}. Total count: {}. PackageId: {}", j, endIndex, subjectToUpdate.size(), packageId);
|
||||
}
|
||||
}
|
||||
log.debug("Complete updating subject's batch");
|
||||
|
||||
log.info("Finish calculating flags for subjects. PackageId: {}. Batch size: {}", packageId, fidsMap.size());
|
||||
return !fidsMap.isEmpty();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@
|
|||
<appender-ref ref="FILE-JSON"/>
|
||||
</logger>
|
||||
|
||||
<logger name="ru.nbch.credit_tracker.service" level="DEBUG" additivity="false">
|
||||
<logger name="ru.nbch.credit_tracker.service" level="TRACE" additivity="false">
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="FILE-JSON"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue