From 39af53d1de2cf821eb85124dabd018b14c31b3bb Mon Sep 17 00:00:00 2001 From: xiang Date: Tue, 29 Jul 2025 21:48:31 +0800 Subject: [PATCH] =?UTF-8?q?perf=EF=BC=9A=E6=8B=89=E5=8F=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE+=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 + .../fwd/schedule/PullDataFromFWDJob.java | 281 +++--------------- .../xb/schedule/xb/FundInfoQueryJob.java | 4 +- .../src/main/resources/application-local.yml | 1 + script/src/main/resources/application.yml | 6 +- 5 files changed, 57 insertions(+), 240 deletions(-) diff --git a/pom.xml b/pom.xml index 7810b90..47fb50b 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,11 @@ xservice-cache 1.0-SNAPSHOT + + com.xiang + xservice-http-starter + 1.0-SNAPSHOT + diff --git a/script/src/main/java/com/xiang/xservice/fwd/schedule/PullDataFromFWDJob.java b/script/src/main/java/com/xiang/xservice/fwd/schedule/PullDataFromFWDJob.java index c475aad..f19ac22 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/schedule/PullDataFromFWDJob.java +++ b/script/src/main/java/com/xiang/xservice/fwd/schedule/PullDataFromFWDJob.java @@ -1,34 +1,18 @@ package com.xiang.xservice.fwd.schedule; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.xiang.xservice.basic.common.req.BaseRequest; import com.xiang.xservice.basic.config.MyThreadFactory; import com.xiang.xservice.basic.utils.DateUtils; -import com.xiang.xservice.fwd.entity.pojo.FAudienceConfig; -import com.xiang.xservice.fwd.entity.pojo.FPerformConfig; -import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo; -import com.xiang.xservice.fwd.entity.pojo.FPerformSeatInfo; -import com.xiang.xservice.fwd.entity.pojo.FUserConfig; +import com.xiang.xservice.fwd.entity.pojo.*; import com.xiang.xservice.fwd.entity.resp.http.audience.AudienceMemberInfo; -import com.xiang.xservice.fwd.entity.resp.http.perform.Perform; -import com.xiang.xservice.fwd.entity.resp.http.perform.PerformDetail; -import com.xiang.xservice.fwd.entity.resp.http.perform.PerformInfo; -import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectInfoResp; -import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectList; -import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectsResp; -import com.xiang.xservice.fwd.entity.resp.http.perform.SeatPlan; -import com.xiang.xservice.fwd.entity.resp.http.perform.SeatPlanStatus; -import com.xiang.xservice.fwd.mapper.FwdAudienceConfigMapper; -import com.xiang.xservice.fwd.mapper.FwdPerformConfigMapper; -import com.xiang.xservice.fwd.mapper.FwdPerformProjectInfoMapper; -import com.xiang.xservice.fwd.mapper.FwdPerformSeatInfoMapper; -import com.xiang.xservice.fwd.mapper.FwdUserConfigMapper; +import com.xiang.xservice.fwd.entity.resp.http.perform.*; +import com.xiang.xservice.fwd.mapper.*; import com.xiang.xservice.fwd.service.IPerformServiceHttp; +import com.xiang.xservice.http.helper.HttpRequestHelper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -39,7 +23,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -65,6 +48,7 @@ public class PullDataFromFWDJob { private final FwdPerformSeatInfoMapper performSeatInfoMapper; private final FwdUserConfigMapper userConfigMapper; private final FwdAudienceConfigMapper audienceConfigMapper; + private final HttpRequestHelper httpRequestHelper; private final ExecutorService es = new ThreadPoolExecutor( @@ -76,168 +60,6 @@ public class PullDataFromFWDJob { new MyThreadFactory("fwd-pull-data-http", Boolean.TRUE), new ThreadPoolExecutor.AbortPolicy()); - /** - * 定时任务 每日1点爬取芬玩岛数据演出列表数据 - */ -// @Scheduled(cron = "0 0 1 1/1 * ?") - @PostMapping("/pullProjectsDataJob") - public void pullProjectsDataJob() { - int i = 0; - while (true) { - i++; - BaseRequest request = new BaseRequest(); - request.setCurrent(i); - request.setPageSize(50); - try { - ProjectsResp showProjectsFromHttp = performServiceHttp.getShowProjectsFromHttp(request); - if (Objects.isNull(showProjectsFromHttp)) { - return; - } - if (CollectionUtils.isEmpty(showProjectsFromHttp.getList())) { - break; - } - List projectList = showProjectsFromHttp.getList(); - - List futureList = Lists.newArrayList(); - for (ProjectList project : projectList) { - CompletableFuture future = CompletableFuture.runAsync(() -> { - ProjectInfoResp projectInfoFromHttp = performServiceHttp.getProjectInfoFromHttp(project.getProjectId()); - Perform performsByProjectIdFromHttp = performServiceHttp.getPerformsByProjectIdFromHttp(project.getProjectId()); - if (Objects.nonNull(projectInfoFromHttp) && Objects.nonNull(performsByProjectIdFromHttp)) { - FPerformProjectInfo projectInfo = performProjectInfoMapper.getProjectByProjectId(project.getProjectId()); - if (Objects.nonNull(projectInfo)) { - // 更新projectInfo的信息 - buildUpdateProjectInfo(project, projectInfo, projectInfoFromHttp); - performProjectInfoMapper.update(projectInfo); - List fPerformSeatInfoInsertList = Lists.newArrayList(); - if (CollectionUtils.isNotEmpty(performsByProjectIdFromHttp.getPerformInfos())) { - for (PerformInfo performInfo : performsByProjectIdFromHttp.getPerformInfos()) { - if (CollectionUtils.isNotEmpty(performInfo.getPerformInfo())) { - for (PerformDetail performDetail : performInfo.getPerformInfo()) { - if (CollectionUtils.isNotEmpty(performDetail.getSeatPlans())) { - - List seatPlanIds = performDetail.getSeatPlans().stream().map(SeatPlan::getSeatPlanId).toList(); - Map seatMap = getSeatMap(seatPlanIds); - if (MapUtils.isEmpty(seatMap)) continue; - for (SeatPlan seatPlan : performDetail.getSeatPlans()) { - if (!seatMap.containsKey(seatPlan.getSeatPlanId())) { - continue; - } - FPerformSeatInfo fPerformSeatInfo = new FPerformSeatInfo(); - fPerformSeatInfo.setSeatPlanId(seatPlan.getSeatPlanId()); - fPerformSeatInfo.setSeatPlanName(seatPlan.getSeatPlanName()); - fPerformSeatInfo.setPerformId(seatPlan.getPerformId()); - fPerformSeatInfo.setPerformName(seatPlan.getPerformName()); - fPerformSeatInfo.setStopSale(seatPlan.getStopSale()); - fPerformSeatInfo.setShelfStatus(seatPlan.getShelfStatus()); - fPerformSeatInfo.setPrice(seatPlan.getPrice()); - fPerformSeatInfo.setDiscountPrice(seatPlan.getDiscountPrice()); - fPerformSeatInfo.setSubStatus(seatPlan.getSubStatus()); - fPerformSeatInfo.setQuantity(seatPlan.getQuantity()); - fPerformSeatInfo.setStatus(seatPlan.getStatus()); - fPerformSeatInfo.setMaxSellStock(seatPlan.getMaxSellStock()); - fPerformSeatInfo.setSoldStock(seatPlan.getSoldStock()); - fPerformSeatInfo.setLeftStock(seatPlan.getLeftStock()); - fPerformSeatInfo.setAbleSaleQuantity(seatPlan.getAbleSaleQuantity()); - fPerformSeatInfo.setAshShow(seatPlan.getAshShow()); - fPerformSeatInfo.setAshShowDesc(seatPlan.getAshShowDesc()); - fPerformSeatInfo.setSelectable(seatPlan.getSelectable()); - fPerformSeatInfo.setDisplay(seatPlan.getDisplay()); - fPerformSeatInfo.setAvailableTicketQuantity(seatPlan.getAvailableTicketQuantity()); - fPerformSeatInfo.setAvailableAllTicketQuantity(seatPlan.getAvailableAllTicketQuantity()); - if (StringUtils.isNotBlank(seatPlan.getSaleTime())) { - fPerformSeatInfo.setSaleTime(DateUtils.getTimeFromStr(seatPlan.getSaleTime())); - } - fPerformSeatInfo.setProjectId(project.getProjectId()); - fPerformSeatInfo.setSoldOut(seatMap.get(seatPlan.getSeatPlanId()) ? 1 : 0); - FPerformSeatInfo seatInfo = performSeatInfoMapper.getPerformSeatInfoBySeatIdAndPerformIdAndProjectId(fPerformSeatInfo.getSeatPlanId(), fPerformSeatInfo.getPerformId(), project.getProjectId()); - if (Objects.nonNull(seatInfo)) { - fPerformSeatInfo.setId(seatInfo.getId()); - performSeatInfoMapper.update(fPerformSeatInfo); - } else { - fPerformSeatInfoInsertList.add(fPerformSeatInfo); - } - } - } - } - } - } - } - - if (CollectionUtils.isNotEmpty(fPerformSeatInfoInsertList)) { - performSeatInfoMapper.batchSave(fPerformSeatInfoInsertList); - } - } else { - // 新增projectInfo的信息 - saveProjectInfo(project, projectInfoFromHttp); - - List fPerformSeatInfos = Lists.newArrayList(); - if (CollectionUtils.isNotEmpty(performsByProjectIdFromHttp.getPerformInfos())) { - for (PerformInfo performInfo : performsByProjectIdFromHttp.getPerformInfos()) { - if (CollectionUtils.isNotEmpty(performInfo.getPerformInfo())) { - for (PerformDetail performDetail : performInfo.getPerformInfo()) { - if (CollectionUtils.isNotEmpty(performDetail.getSeatPlans())) { - List seatPlanIds = performDetail.getSeatPlans().stream().map(SeatPlan::getSeatPlanId).toList(); - Map seatMap = getSeatMap(seatPlanIds); - if (MapUtils.isEmpty(seatMap)) continue; - for (SeatPlan seatPlan : performDetail.getSeatPlans()) { - if (!seatMap.containsKey(seatPlan.getSeatPlanId())) { - continue; - } - FPerformSeatInfo fPerformSeatInfo = new FPerformSeatInfo(); - fPerformSeatInfo.setSeatPlanId(seatPlan.getSeatPlanId()); - fPerformSeatInfo.setSeatPlanName(seatPlan.getSeatPlanName()); - fPerformSeatInfo.setPerformId(seatPlan.getPerformId()); - fPerformSeatInfo.setPerformName(seatPlan.getPerformName()); - fPerformSeatInfo.setStopSale(seatPlan.getStopSale()); - fPerformSeatInfo.setShelfStatus(seatPlan.getShelfStatus()); - fPerformSeatInfo.setPrice(seatPlan.getPrice()); - fPerformSeatInfo.setDiscountPrice(seatPlan.getDiscountPrice()); - fPerformSeatInfo.setSubStatus(seatPlan.getSubStatus()); - fPerformSeatInfo.setQuantity(seatPlan.getQuantity()); - fPerformSeatInfo.setStatus(seatPlan.getStatus()); - fPerformSeatInfo.setMaxSellStock(seatPlan.getMaxSellStock()); - fPerformSeatInfo.setSoldStock(seatPlan.getSoldStock()); - fPerformSeatInfo.setLeftStock(seatPlan.getLeftStock()); - fPerformSeatInfo.setAbleSaleQuantity(seatPlan.getAbleSaleQuantity()); - fPerformSeatInfo.setAshShow(seatPlan.getAshShow()); - fPerformSeatInfo.setAshShowDesc(seatPlan.getAshShowDesc()); - fPerformSeatInfo.setSelectable(seatPlan.getSelectable()); - fPerformSeatInfo.setDisplay(seatPlan.getDisplay()); - fPerformSeatInfo.setAvailableTicketQuantity(seatPlan.getAvailableTicketQuantity()); - fPerformSeatInfo.setAvailableAllTicketQuantity(seatPlan.getAvailableAllTicketQuantity()); - if (StringUtils.isNotBlank(seatPlan.getSaleTime())) { - fPerformSeatInfo.setSaleTime(DateUtils.getTimeFromStr(seatPlan.getSaleTime())); - } - fPerformSeatInfo.setProjectId(project.getProjectId()); - fPerformSeatInfo.setSoldOut(seatMap.get(seatPlan.getSeatPlanId()) ? 1 : 0); - } - } - } - } - } - } - - if (CollectionUtils.isNotEmpty(fPerformSeatInfos)) { - performSeatInfoMapper.batchSave(fPerformSeatInfos); - } - } - } - }, es); - futureList.add(future); - } - CompletableFuture[] futureArr = futureList.toArray(futureList.toArray(new CompletableFuture[0])); - CompletableFuture.allOf(futureArr).join(); - Thread.sleep(1000); - } catch (Exception e) { - log.error("拉取数据失败", e); - } finally { - System.gc(); - } - - } - } - private void saveProjectInfo(ProjectList project, ProjectInfoResp projectInfoFromHttp) { FPerformProjectInfo fPerformProjectInfo = new FPerformProjectInfo(); fPerformProjectInfo.setNameDisplay(projectInfoFromHttp.getNameDisplay()); @@ -277,7 +99,7 @@ public class PullDataFromFWDJob { return; } for (FPerformConfig performConfig : availablePerform) { - Perform performs = performServiceHttp.getPerformsByProjectIdFromHttp(performConfig.getProjectId()); + Perform performs = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.getPerformsByProjectIdFromHttp(performConfig.getProjectId()), "seat-perform-info"); if (Objects.isNull(performs)) { continue; } @@ -295,7 +117,7 @@ public class PullDataFromFWDJob { continue; } Map map = seatPlans.stream().collect(Collectors.toMap(SeatPlan::getSeatPlanId, Function.identity(), (a, b) -> a)); - List planStatusFromHttp = performServiceHttp.getSeatPlanStatusFromHttp(new ArrayList<>(map.keySet())); + List planStatusFromHttp = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.getSeatPlanStatusFromHttp(new ArrayList<>(map.keySet())), "seat-seat-status"); List seatInfoAddList = Lists.newArrayList(); for (SeatPlanStatus seatPlanStatus : planStatusFromHttp) { if (!seatPlanStatus.getSoldOutFlag() && seatPlanStatus.getStandbyStatus() == 10) { @@ -383,7 +205,7 @@ public class PullDataFromFWDJob { baseRequest.setCurrent(pageNum); baseRequest.setPageSize(50); // 查询所有的演出 - ProjectsResp projectsResp = performServiceHttp.getShowProjectsFromHttp(baseRequest); + ProjectsResp projectsResp = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.getShowProjectsFromHttp(baseRequest), "fetch-projects"); if (Objects.isNull(projectsResp)) { break; } @@ -392,14 +214,13 @@ public class PullDataFromFWDJob { break; } for (ProjectList projectList : projectLists) { - List seatPlans = Lists.newArrayList(); // 查询演出的详情 - ProjectInfoResp projectInfoFromHttp = performServiceHttp.getProjectInfoFromHttp(projectList.getProjectId()); + ProjectInfoResp projectInfoFromHttp = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.getProjectInfoFromHttp(projectList.getProjectId()), "fetch-project-info"); if (Objects.isNull(projectInfoFromHttp)) { continue; } // 查询演出信息 - Perform performsByProjectIdFromHttp = performServiceHttp.getPerformsByProjectIdFromHttp(projectList.getProjectId()); + Perform performsByProjectIdFromHttp = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.getPerformsByProjectIdFromHttp(projectList.getProjectId()), "fetch-perform-by-project-id"); if (Objects.isNull(performsByProjectIdFromHttp)) { continue; } @@ -421,47 +242,42 @@ public class PullDataFromFWDJob { continue; } // 查询演出座位档次信息 + List insertList = Lists.newCopyOnWriteArrayList(); + List updateList = Lists.newCopyOnWriteArrayList(); for (PerformInfo performInfo : performInfos) { List performs = performInfo.getPerformInfo(); if (CollectionUtils.isEmpty(performs)) { continue; } for (PerformDetail perform : performs) { - seatPlans.addAll(perform.getSeatPlans()); + if (CollectionUtils.isEmpty(perform.getSeatPlans())) { + continue; + } + List seatPlanIds = perform.getSeatPlans().stream().map(SeatPlan::getSeatPlanId).collect(Collectors.toList()); + List seatPlanStatusList = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.getSeatPlanStatusFromHttp(seatPlanIds), "fetch-seat-plan-status"); + if (CollectionUtils.isEmpty(seatPlanStatusList)) { + continue; + } + Map map = seatPlanStatusList.stream().collect(Collectors.toMap(SeatPlanStatus::getSeatPlanId, Function.identity(), (a, b) -> a)); + Map existSeatMap = performSeatInfoMapper.getPerformSeatInfoBySeatIds(seatPlanIds) + .stream() + .collect(Collectors.toMap(FPerformSeatInfo::getSeatPlanId, Function.identity(), (a, b) -> a)); + for (SeatPlan seatPlan : perform.getSeatPlans()) { + if (map.containsKey(seatPlan.getSeatPlanId())) { + SeatPlanStatus value = map.get(seatPlan.getSeatPlanId()); + if (existSeatMap.containsKey(seatPlan.getSeatPlanId())) { + // 更新 + FPerformSeatInfo performSeatInfo = existSeatMap.get(seatPlan.getSeatPlanId()); + performSeatInfo.setSoldStock(value.getSoldOutFlag() ? 1 : 0); + updateList.add(performSeatInfo); + } else { + // 新增 + saveSeatInfo(projectList, seatPlan.getSeatPlanId(), value, seatPlan, insertList); + } + } + } } } - - Map seatPlanMap = seatPlans.stream().collect(Collectors.toMap(SeatPlan::getSeatPlanId, Function.identity(), (a, b) -> a)); - List seatPlanIds = new ArrayList<>(seatPlanMap.keySet()); - List seatPlanStatusFromHttp = performServiceHttp.getSeatPlanStatusFromHttp(seatPlanIds); - if (CollectionUtils.isEmpty(seatPlanStatusFromHttp)) { - continue; - } - Map seatMap = seatPlanStatusFromHttp.stream() - .collect(Collectors.toMap(SeatPlanStatus::getSeatPlanId, Function.identity(), (a, b) -> a)); - List insertList = Lists.newCopyOnWriteArrayList(); - List updateList = Lists.newCopyOnWriteArrayList(); - Map existSeatMap = performSeatInfoMapper.getPerformSeatInfoBySeatIds(seatPlanIds) - .stream() - .collect(Collectors.toMap(FPerformSeatInfo::getSeatPlanId, Function.identity(), (a, b) -> a)); - seatMap.forEach((k, v) -> { - if (v.getSoldOutFlag()) { - return; - } - if (existSeatMap.containsKey(k)) { - FPerformSeatInfo fPerformSeatInfo = existSeatMap.get(k); - if (v.getStandbyStatus().equals(10)) { - fPerformSeatInfo.setSoldStock(0); - } - updateList.add(fPerformSeatInfo); - } else { - SeatPlan seatPlan = seatPlanMap.get(k); - if (Objects.isNull(seatPlan)) { - return; - } - saveSeatInfo(projectList, k, v, seatPlan, insertList); - } - }); if (!CollectionUtils.isEmpty(insertList)) { performSeatInfoMapper.batchSave(insertList); } @@ -472,11 +288,6 @@ public class PullDataFromFWDJob { } } } - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - log.error("" , e); - } } private static void saveSeatInfo(ProjectList projectList, Long seatPlanId, SeatPlanStatus seatPlanStatus, SeatPlan seatPlan, List insertList) { @@ -502,10 +313,14 @@ public class PullDataFromFWDJob { fPerformSeatInfo.setDisplay(seatPlan.getDisplay()); fPerformSeatInfo.setAvailableTicketQuantity(seatPlan.getAvailableTicketQuantity()); fPerformSeatInfo.setAvailableAllTicketQuantity(seatPlan.getAvailableAllTicketQuantity()); - fPerformSeatInfo.setSaleTime(DateUtils.getTimeFromStr(seatPlan.getSaleTime())); + if (StringUtils.isNotBlank(seatPlan.getSaleTime())) { + fPerformSeatInfo.setSaleTime(DateUtils.getTimeFromStr(seatPlan.getSaleTime())); + } fPerformSeatInfo.setProjectId(projectList.getProjectId()); if (!seatPlanStatus.getSoldOutFlag() && seatPlanStatus.getStandbyStatus().equals(10)) { - fPerformSeatInfo.setSoldStock(0); + fPerformSeatInfo.setSoldOut(0); + } else { + fPerformSeatInfo.setSoldOut(1); } insertList.add(fPerformSeatInfo); } @@ -536,12 +351,4 @@ public class PullDataFromFWDJob { projectInfo.setPreSaleTime(DateUtils.getDateTimeFromStr(projectInfoFromHttp.getPreSaleTime())); } } - - private Map getSeatMap(List seatPlanIds) { - List statusFromHttp = performServiceHttp.getSeatPlanStatusFromHttp(seatPlanIds); - if (CollectionUtils.isEmpty(statusFromHttp)) { - return Maps.newHashMap(); - } - return statusFromHttp.stream().collect(Collectors.toMap(SeatPlanStatus::getSeatPlanId, SeatPlanStatus::getSoldOutFlag, (a, b) -> a)); - } } diff --git a/script/src/main/java/com/xiang/xservice/xb/schedule/xb/FundInfoQueryJob.java b/script/src/main/java/com/xiang/xservice/xb/schedule/xb/FundInfoQueryJob.java index 2999aaf..e092c69 100644 --- a/script/src/main/java/com/xiang/xservice/xb/schedule/xb/FundInfoQueryJob.java +++ b/script/src/main/java/com/xiang/xservice/xb/schedule/xb/FundInfoQueryJob.java @@ -146,7 +146,7 @@ public class FundInfoQueryJob { } log.info("查询的港股基金涨跌幅数据:{}", JSONObject.toJSONString(result)); result = result.stream().sorted(Comparator.comparing(FundMessage::getChange)).collect(Collectors.toList()); - StringBuilder sb = new StringBuilder("今天的美股行情:\n"); + StringBuilder sb = new StringBuilder("今天的港股行情:\n"); for (FundMessage fundMessage : result) { sb.append("基金名称:") .append(fundMessage.getName()) @@ -165,7 +165,7 @@ public class FundInfoQueryJob { /** * 基金涨跌幅5分钟超过2%重点通知 */ - @Scheduled(cron = "0 0/5 * * * ? ") + @Scheduled(cron = "0 0/5 9,10,11,13,14,15 * * ? ") public void queryFundEmergencyJob() throws Exception { // 周六周日过滤 if (Objects.equals(LocalDateTime.now().getDayOfWeek(), DayOfWeek.SATURDAY) || diff --git a/script/src/main/resources/application-local.yml b/script/src/main/resources/application-local.yml index 9db2558..3790241 100644 --- a/script/src/main/resources/application-local.yml +++ b/script/src/main/resources/application-local.yml @@ -16,6 +16,7 @@ spring: max-idle: 8 min-idle: 0 max-wait: 1000 + aliyun: dns: RR: diff --git a/script/src/main/resources/application.yml b/script/src/main/resources/application.yml index c4fe5ce..a729076 100644 --- a/script/src/main/resources/application.yml +++ b/script/src/main/resources/application.yml @@ -22,4 +22,8 @@ server: spring: profiles: - active: local \ No newline at end of file + active: local + +http: + maxAttempts: 10 + sleepMs: 200 \ No newline at end of file