Communication times become longer intermittently

hello. I would like to ask a question because there are cases where response or connection is delayed during API communication.

I'm trying to implement a monitoring function. Currently, I have created three Ouath accounts and communicate using Spring Scheduled alternately every 5 seconds.

We would like to inquire because the response time continues to exceed 5 seconds intermittently.

Using the code below, we are monitoring the overall user status, request calls, response calls, abandon calls, service levels, and waiting calls for the entire queue.

I would appreciate it if you could let me know if there is anything that needs to be corrected or a way to solve the problem.

-----JAVA CODE SDK VER 190.0.0

//0. login settings and communication client creat
ApiClient apiClient = ApiClient.Builder.standard().withConnectionTimeout(5000).withBasePath(region).build();
ApiResponse<AuthResponse> authResponse = apiClient.authorizeClientCredentials(clientIds.get(type), clientSecrets.get(type));
Configuration.setDefaultApiClient(apiClient);

//1. First API Call
UserEntityListing response = new UsersApi().getUsers(100, null, null, null, null, expand, null, null);

//2. Second API call
//2.1 Setting query
ConversationAggregationQuery queryLed = new ConversationAggregationQuery();
		
LocalDate today = LocalDate.now();
LocalDate tomorrow = today.minusDays(1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String todayFormatted = today.format(formatter);
String tomorrowFormatted = tomorrow.format(formatter);
queryLed.setInterval(tomorrowFormatted + "T15:00:00.000Z/" + todayFormatted + "T15:00:00.000Z");

List<GroupByEnum> groupEnumListLed = new ArrayList<>();
groupEnumListLed.add(ConversationAggregationQuery.GroupByEnum.MEDIATYPE);
groupEnumListLed.add(ConversationAggregationQuery.GroupByEnum.ORIGINATINGDIRECTION);
groupEnumListLed.add(ConversationAggregationQuery.GroupByEnum.QUEUEID);
queryLed.setGroupBy(groupEnumListLed);

List<com.mypurecloud.sdk.v2.model.ConversationAggregationQuery.MetricsEnum> metricsEnumListLed = new ArrayList<>();
metricsEnumListLed.add(ConversationAggregationQuery.MetricsEnum.NOFFERED);
metricsEnumListLed.add(ConversationAggregationQuery.MetricsEnum.TANSWERED);
metricsEnumListLed.add(ConversationAggregationQuery.MetricsEnum.TABANDON);
queryLed.setMetrics(metricsEnumListLed);

List<ConversationAggregationView> viewListLed = new ArrayList<>();
ConversationAggregationView viewLed = new ConversationAggregationView();
viewLed.setName("tAnswered_0_20");
viewLed.setTarget(ConversationAggregationView.TargetEnum.TANSWERED);
viewLed.setFunction(ConversationAggregationView.FunctionEnum.RANGEBOUND);
AggregationRange rangeLed = new AggregationRange();
rangeLed.setGte(BigDecimal.valueOf(0));
rangeLed.setLt(BigDecimal.valueOf(20000));
viewLed.setRange(rangeLed);
viewListLed.add(viewLed);
queryLed.setViews(viewListLed);

//2.2 API Call 
ConversationAggregateQueryResponse responseLed = new AnalyticsApi().postAnalyticsConversationsAggregatesQuery(queryLed);

//3. third API call
//3.1 Setting query
List<QueueObservationQueryPredicate> predicatesList = new ArrayList<>();

QueueObservationQueryPredicate predicate = new QueueObservationQueryPredicate();
predicate.setType(QueueObservationQueryPredicate.TypeEnum.DIMENSION);
predicate.setDimension(QueueObservationQueryPredicate.DimensionEnum.QUEUEID);
predicate.setValue(propQueueId1);

QueueObservationQueryPredicate predicate2 = new QueueObservationQueryPredicate();
predicate2.setType(QueueObservationQueryPredicate.TypeEnum.DIMENSION);
predicate2.setDimension(QueueObservationQueryPredicate.DimensionEnum.QUEUEID);
predicate2.setValue(propQueueId2);

QueueObservationQueryPredicate predicate3 = new QueueObservationQueryPredicate();
predicate3.setType(QueueObservationQueryPredicate.TypeEnum.DIMENSION);
predicate3.setDimension(QueueObservationQueryPredicate.DimensionEnum.QUEUEID);
predicate3.setValue(propQueueId3);

predicatesList.add(predicate);
predicatesList.add(predicate2);
predicatesList.add(predicate3);

QueueObservationQueryFilter filter = new QueueObservationQueryFilter();
filter.setType(QueueObservationQueryFilter.TypeEnum.OR);
filter.setPredicates(predicatesList);

List<MetricsEnum> metricsEnumList = new ArrayList<>();
metricsEnumList.add(QueueObservationQuery.MetricsEnum.OWAITING);

QueueObservationQuery query = new QueueObservationQuery();
query.setMetrics(metricsEnumList);
query.setFilter(filter);

//3.2 API Call
QueueObservationQueryResponse response2 = new AnalyticsApi().postAnalyticsQueuesObservationsQuery(query);

API requests can take up to 15 seconds to complete. If you're not getting timeout responses, the API is behaving normally.

Thanks for the reply.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.