This commit is contained in:
etreschenkov 2025-12-02 15:10:00 +03:00
parent 90259217b4
commit f88af385c3
7 changed files with 27 additions and 16 deletions

View file

@ -142,11 +142,11 @@ public class SignalFacadeV3 {
throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringError); throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringError);
} }
// проверка на уникальность пакета // // проверка на уникальность пакета
if (userPackageService.isPackageNotUnique(userId, packageName)) { // if (userPackageService.isPackageNotUnique(userId, packageName)) {
userPackageService.rejectPackage(userId, packageName); // userPackageService.rejectPackage(userId, packageName);
throw clientExcp(SignalError.ERROR_007, XmlErrorFormat.MonitoringError); // throw clientExcp(SignalError.ERROR_007, XmlErrorFormat.MonitoringError);
} // }
Long packageId = userPackageService.registerPackage(userId, packageName); Long packageId = userPackageService.registerPackage(userId, packageName);
LogUtil.addMdcLogKey("%s %d".formatted(packageName, packageId)); LogUtil.addMdcLogKey("%s %d".formatted(packageName, packageId));

View file

@ -39,4 +39,5 @@ public interface UserPackageMapper {
@Param("packageName") String packageName); @Param("packageName") String packageName);
void setRejectedStatus(@Param("id") Long id, @Param("status") String status); void setRejectedStatus(@Param("id") Long id, @Param("status") String status);
boolean hasOldRow(@Param("packageId") Long packageId, @Param("daysCount") Integer daysCount);
} }

View file

@ -80,10 +80,7 @@ public class MonitoringService {
private void monitor() { private void monitor() {
try { try {
log.info("Start monitoring"); log.info("Start monitoring");
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus( List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.ON_MONITORING.name());
Status.ON_MONITORING.name(),
Status.PROCESSING_REPEATED.name()
);
for (UserPackage userPackage : packages) { for (UserPackage userPackage : packages) {
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]"); MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]");
processPackage(userPackage); processPackage(userPackage);

View file

@ -63,7 +63,7 @@ public class UpdatingFlagsService {
for (UserPackage userPackage : packages) { for (UserPackage userPackage : packages) {
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]"); MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]");
log.info("Check on updating flags for Package {}", userPackage.getPackageName()); log.info("Check on updating flags for Package {}", userPackage.getPackageName());
boolean hasOldRow = phoneFidMapMapper.hasOldRow(userPackage.getId(), daysToUpdateFlags.intValue()); boolean hasOldRow = userPackageMapper.hasOldRow(userPackage.getId(), daysToUpdateFlags.intValue());
log.info("There are {} old rows", hasOldRow ? "exist" : "doesn't exist"); log.info("There are {} old rows", hasOldRow ? "exist" : "doesn't exist");
if (hasOldRow) { if (hasOldRow) {
try { try {

View file

@ -9,6 +9,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.enums.RejectedStatus;
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper; import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload; import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload;
import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService; import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService;
@ -111,6 +112,8 @@ public class PipelinePackageOrchestrator {
if (success) { if (success) {
userPackageMapper.updatePackageOnMonitoringSuccess(packageId, LocalDateTime.now()); userPackageMapper.updatePackageOnMonitoringSuccess(packageId, LocalDateTime.now());
monitoringErrorProcesingService.findErrors(packageId); monitoringErrorProcesingService.findErrors(packageId);
} else {
userPackageMapper.setRejectedStatus(packageId, RejectedStatus.ERROR.getKey());
} }
} catch (Exception ex) { } catch (Exception ex) {
log.error("pipeline finished with error{}", ExceptionUtils.getStackTrace(ex)); log.error("pipeline finished with error{}", ExceptionUtils.getStackTrace(ex));

View file

@ -27,15 +27,17 @@ public class KickPipeLineRestoreImpl extends KickPipeLine {
@Override @Override
protected List<PhoneFidMap> nextPage(Integer limit) { protected List<PhoneFidMap> nextPage(Integer limit) {
List<PhoneFidMap> pageWithNullFids = new ArrayList<>(); List<PhoneFidMap> page = new ArrayList<>();
if (!nullFidsWereFound) { if (!nullFidsWereFound) {
pageWithNullFids = phoneFidMapMapper.findNullFidPhoneFidMap(packageId, limit, offset); page = phoneFidMapMapper.findNullFidPhoneFidMap(packageId, limit, offset);
} }
if (pageWithNullFids.isEmpty()) { if (page.isEmpty()) {
nullFidsWereFound = true; if (!nullFidsWereFound) {
offset = 0; nullFidsWereFound = true;
offset = 0;
}
return phoneFidMapMapper.findNotNullFidPhoneFidMap(packageId, limit, offset); return phoneFidMapMapper.findNotNullFidPhoneFidMap(packageId, limit, offset);
} }
return pageWithNullFids; return page;
} }
} }

View file

@ -140,4 +140,12 @@
WHERE LEFT(membercode, 6) = #{memberCode} AND package_name = #{packageName} WHERE LEFT(membercode, 6) = #{memberCode} AND package_name = #{packageName}
</select> </select>
<select id="hasOldRow" resultType="java.lang.Boolean">
select EXISTS(SELECT 1
FROM signals_user_packages
WHERE id = #{packageId}
AND last_searched_at &lt; now() - make_interval(days => #{daysCount})
)
</select>
</mapper> </mapper>