Skip to content

Commit

Permalink
Merge pull request #29 from FinalDoubleTen/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
kdjun99 authored Jan 11, 2024
2 parents f0490e0 + 337a117 commit 83c6001
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 21 deletions.
3 changes: 2 additions & 1 deletion src/main/java/org/tenten/tentenstomp/config/AsyncConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@

@Configuration
public class AsyncConfig {
@Bean
@Bean(name = "pathTaskExecutor")
public Executor myPool() {
ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
threadPoolTaskExecutor.setCorePoolSize(5); // 기본 스레드 수
threadPoolTaskExecutor.setMaxPoolSize(20); // 최대 스레드 수
threadPoolTaskExecutor.setThreadNamePrefix("AsyncThread-");
return threadPoolTaskExecutor;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.tenten.tentenstomp.domain.trip.controller;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.messaging.handler.annotation.DestinationVariable;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.Payload;
Expand All @@ -11,6 +12,7 @@

@RestController
@RequiredArgsConstructor
@Slf4j
public class TripController {

private final TripService tripService;
Expand All @@ -23,36 +25,43 @@ public void testKafka(@Payload TripUpdateMsg tripUpdateMsg) {

@MessageMapping("/trips/{tripId}/connectMember")
public void connectMember(@DestinationVariable String tripId, @Payload MemberConnectMsg memberConnectMsg) {
log.info("/trips/"+tripId+"/connectMember");
tripService.connectMember(tripId, memberConnectMsg);
}

@MessageMapping("/trips/{tripId}/disconnectMember")
public void disconnectMember(@DestinationVariable String tripId, @Payload MemberDisconnectMsg memberDisconnectMsg) {
log.info("/trips/"+tripId+"/disconnectMember");
tripService.disconnectMember(tripId, memberDisconnectMsg);
}

@MessageMapping("/trips/{tripId}/enterMember")
public void enterMember(@DestinationVariable String tripId, @Payload MemberConnectMsg memberConnectMsg) {
log.info("/trips/"+tripId+"/enterMember");
tripService.enterMember(tripId, memberConnectMsg);
}

@MessageMapping("/trips/{tripId}/info")
public void editPlan(@DestinationVariable String tripId, @Payload TripUpdateMsg tripUpdateMsg) {
log.info("/trips/"+tripId+"/info");
tripService.updateTrip(tripId, tripUpdateMsg);
}

@MessageMapping("/trips/{tripId}/addTripItems")
public void addTripItem(@DestinationVariable String tripId, @Payload TripItemAddMsg tripItemAddMsg) {
log.info("/trips/"+tripId+"/addTripItems");
tripService.addTripItem(tripId, tripItemAddMsg);
}

@MessageMapping("/trips/{tripId}/updateTripItemOrder")
public void updateTripItemOrder(@DestinationVariable String tripId, @Payload TripItemOrderUpdateMsg orderUpdateMsg) {
log.info("/trips/"+tripId+"/updateTripItemOrder");
tripService.updateTripItemOrder(tripId, orderUpdateMsg);
}

@MessageMapping("/trips/{tripId}/getPathAndItems")
public void getPathAndItems(@DestinationVariable String tripId, @Payload PathAndItemRequestMsg pathAndItemRequestMsg) {
log.info("/trips/"+tripId+"/getPathAndItems");
tripService.getPathAndItems(tripId, pathAndItemRequestMsg);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.tenten.tentenstomp.domain.trip.controller;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.messaging.handler.annotation.DestinationVariable;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.Payload;
Expand All @@ -12,26 +13,31 @@

@RestController
@RequiredArgsConstructor
@Slf4j
public class TripItemController {
private final TripItemService tripItemService;

@MessageMapping("/tripItems/{tripItemId}/updatePrice")
public void updateTripItemPrice(@DestinationVariable String tripItemId, @Payload TripItemPriceUpdateMsg priceUpdateMsg) {
log.info("/tripItems/"+tripItemId+"/updatePrice");
tripItemService.updateTripItemPrice(tripItemId, priceUpdateMsg);
}

@MessageMapping("/tripItems/{tripItemId}/updateVisitDate")
public void updateTripItemVisitDate(@DestinationVariable String tripItemId, @Payload TripItemVisitDateUpdateMsg visitDateUpdateMsg) {
log.info("/tripItems/"+tripItemId+"/updateVisitDate");
tripItemService.updateTripItemVisitDate(tripItemId, visitDateUpdateMsg);
}

@MessageMapping("/tripItems/{tripItemId}/updateTransportation")
public void updateTripItemTransportation(@DestinationVariable String tripItemId, @Payload TripItemTransportationUpdateMsg tripItemTransportationUpdateMsg) {
log.info("/tripItems/"+tripItemId+"/updateTransportation");
tripItemService.updateTripItemTransportation(tripItemId, tripItemTransportationUpdateMsg);
}

@MessageMapping("/tripItems/{tripItemId}/deleteItem")
public void deleteTripItem(@DestinationVariable String tripItemId) {
log.info("/tripItems/"+tripItemId+"/deleteItem");
tripItemService.deleteTripItem(tripItemId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
public class AsyncPathComponent {
private final OdsayComponent odsayComponent;
private final NaverMapComponent naverMapComponent;
@Async
@Async("pathTaskExecutor")
public void calculatePath(TripPlace fromPlace, TripPlace toPlace, List<TripPathInfoMsg> pathInfoMsgs) {

long startTime = System.currentTimeMillis();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ public PathInfo calculatePathInfo(String fromLongitude,
.queryParam("start", fromLongitude + "," + fromLatitude)
.queryParam("goal",toLongitude+","+toLatitude)
.build();
// log.info(uri.toUriString());
HttpHeaders header = new HttpHeaders();
header.set(NAVER_MAP_CLIENT_ID_HEADER, clientId);
header.set(NAVER_MAP_API_KEY_HEADER, apiKey);
Expand All @@ -53,18 +52,10 @@ public PathInfo calculatePathInfo(String fromLongitude,
try {
Map<String, Object> map = objectMapper.readValue(response.getBody(), new TypeReference<Map<String, Object>>() {
});
// for (String key : map.keySet()) {
// log.info("key : " + key);
// }
// log.info("code : " + map.get("code"));
// log.info("msg : " + map.get("message"));
if (map.get("code").equals(0)) {
Map<String, Object> routeMap = (Map<String, Object>) map.get("route");
List<Map<String, Object>> traoptimalList = (List<Map<String, Object>> ) routeMap.get("traoptimal");
Map<String, Object> traoptimal = traoptimalList.get(0);
// for (String traKey : traoptimal.keySet()) {
// log.info("traoptimal key : "+traKey);
// }
Map<String, Object> summary = (Map<String, Object>) traoptimal.get("summary");
Integer tollFare = (Integer) summary.get("tollFare");
Integer fuelPrice = (Integer) summary.get("fuelPrice");
Expand All @@ -76,10 +67,10 @@ public PathInfo calculatePathInfo(String fromLongitude,
}
} catch (JsonProcessingException e) {
log.info("자동차 경로 응답 파일을 읽어오는 과정에서 오류가 발생했습니다.");
return null;
return new PathInfo(-1, -1.0, -1L);
} catch (Exception e) {
log.info(e.getMessage());
return null;
return new PathInfo(-1, -1.0, -1L);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ public PathInfo calculatePathInfo(String fromLongitude,
.queryParam("EX", toLongitude)
.queryParam("EY", toLatitude)
.build();
// log.info(uri.toUriString());
HttpHeaders header = new HttpHeaders();
HttpEntity request = new HttpEntity(header);
ResponseEntity<String> response = restTemplate.exchange(uri.toUri(), GET, request, String.class);
Expand All @@ -64,10 +63,10 @@ public PathInfo calculatePathInfo(String fromLongitude,
}
} catch (JsonProcessingException jsonProcessingException) {
log.info("대중교통 경로 응답 파일을 읽어오는 과정에서 오류가 발생했습니다.");
return null;
return new PathInfo(-1, -1.0, -1L);
} catch (Exception e) {
log.info(e.getMessage());
return null;
return new PathInfo(-1, -1.0, -1L);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.tenten.tentenstomp.global.messaging.kafka.consumer;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.messaging.simp.SimpMessageSendingOperations;
import org.springframework.stereotype.Service;
Expand All @@ -15,6 +16,7 @@
import static org.tenten.tentenstomp.global.common.constant.TopicConstant.*;

@Service
@Slf4j
@RequiredArgsConstructor
public class KafkaConsumer {

Expand All @@ -28,27 +30,37 @@ public void consumeTest(TripUpdateMsg data) {

@KafkaListener(topics = TRIP_INFO, groupId = GROUP_ID_CONFIG)
public void updateTripInfo(TripInfoMsg tripInfoMsg) {
messagingTemplate.convertAndSend(topicUtil.topicToReturnEndPoint(tripInfoMsg.tripId(), TRIP_INFO), GlobalStompResponse.ok(tripInfoMsg));
String destination = topicUtil.topicToReturnEndPoint(tripInfoMsg.tripId(), TRIP_INFO);
log.info(destination);
messagingTemplate.convertAndSend(destination, GlobalStompResponse.ok(tripInfoMsg));
}

@KafkaListener(topics = TRIP_ITEM, groupId = GROUP_ID_CONFIG)
public void updateTripItem(TripItemMsg tripItemMsg) {
messagingTemplate.convertAndSend(topicUtil.topicToReturnEndPoint(tripItemMsg.tripId(), TRIP_ITEM, LocalDate.parse(tripItemMsg.visitDate())), GlobalStompResponse.ok(tripItemMsg));
String destination = topicUtil.topicToReturnEndPoint(tripItemMsg.tripId(), TRIP_ITEM, LocalDate.parse(tripItemMsg.visitDate()));
log.info(destination);
messagingTemplate.convertAndSend(destination, GlobalStompResponse.ok(tripItemMsg));
}

@KafkaListener(topics = PATH, groupId = GROUP_ID_CONFIG)
public void updateTripPath(TripPathMsg tripPathMsg) {
messagingTemplate.convertAndSend(topicUtil.topicToReturnEndPoint(tripPathMsg.tripId(), PATH, LocalDate.parse(tripPathMsg.visitDate())), GlobalStompResponse.ok(tripPathMsg));
String destination = topicUtil.topicToReturnEndPoint(tripPathMsg.tripId(), PATH, LocalDate.parse(tripPathMsg.visitDate()));
log.info(destination);
messagingTemplate.convertAndSend(destination, GlobalStompResponse.ok(tripPathMsg));
}

@KafkaListener(topics = MEMBER, groupId = GROUP_ID_CONFIG)
public void updateConnectedTripMember(TripMemberMsg tripMemberMsg) {
messagingTemplate.convertAndSend(topicUtil.topicToReturnEndPoint(tripMemberMsg.tripId(), MEMBER), GlobalStompResponse.ok(tripMemberMsg));
String destination = topicUtil.topicToReturnEndPoint(tripMemberMsg.tripId(), MEMBER);
log.info(destination);
messagingTemplate.convertAndSend(destination, GlobalStompResponse.ok(tripMemberMsg));
}

@KafkaListener(topics = BUDGET, groupId = GROUP_ID_CONFIG)
public void updateBudget(TripBudgetMsg tripBudgetMsg) {
messagingTemplate.convertAndSend(topicUtil.topicToReturnEndPoint(tripBudgetMsg.tripId(), BUDGET), GlobalStompResponse.ok(tripBudgetMsg));
String destination = topicUtil.topicToReturnEndPoint(tripBudgetMsg.tripId(), BUDGET);
log.info(destination);
messagingTemplate.convertAndSend(destination, GlobalStompResponse.ok(tripBudgetMsg));

}
}

0 comments on commit 83c6001

Please sign in to comment.