Skip to content

Commit b2b060d

Browse files
committed
Make split size 1000 to resolve api response timeout issue of more than 60 sec
1 parent 5b53e3b commit b2b060d

File tree

2 files changed

+23
-15
lines changed

2 files changed

+23
-15
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
<groupId>io.cdap.plugin</groupId>
2222
<artifactId>servicenow-plugins</artifactId>
23-
<version>1.2.0-SNAPSHOT</version>
23+
<version>1.2.4-SNAPSHOT</version>
2424
<name>ServiceNow Plugins</name>
2525
<packaging>jar</packaging>
2626
<description>Plugins for ServiceNow</description>

src/main/java/io/cdap/plugin/servicenow/apiclient/ServiceNowTableAPIClientImpl.java

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -127,22 +127,30 @@ public List<Map<String, String>> fetchTableRecords(
127127
int offset,
128128
int limit)
129129
throws ServiceNowAPIException {
130-
ServiceNowTableAPIRequestBuilder requestBuilder = new ServiceNowTableAPIRequestBuilder(
131-
this.conf.getRestApiEndpoint(), tableName, false)
132-
.setExcludeReferenceLink(true)
133-
.setDisplayValue(valueType)
134-
.setLimit(limit);
130+
List<Map<String, String>> combinedResults = new ArrayList<>();
131+
String accessToken = getAccessToken();
132+
int pageSize = limit / 5;
133+
LOG.info("pageSize:::: " + pageSize);
134+
LOG.info("offset:::: " + offset);
135+
for (int i = 0; i < 5; i++) {
136+
int currentOffset = offset + (i * pageSize);
137+
ServiceNowTableAPIRequestBuilder requestBuilder = new ServiceNowTableAPIRequestBuilder(
138+
this.conf.getRestApiEndpoint(), tableName, false)
139+
.setExcludeReferenceLink(true)
140+
.setDisplayValue(valueType)
141+
.setLimit(pageSize)
142+
.setOffset(currentOffset);
143+
LOG.info("currentOffset:::: " + currentOffset);
144+
145+
applyDateRangeToRequest(requestBuilder, startDate, endDate);
135146

136-
if (offset > 0) {
137-
requestBuilder.setOffset(offset);
147+
requestBuilder.setAuthHeader(accessToken);
148+
RestAPIResponse apiResponse = executeGetWithRetries(requestBuilder.build());
149+
List<Map<String, String>> batch = parseResponseToResultListOfMap(apiResponse.getResponseBody());
150+
combinedResults.addAll(batch);
138151
}
139-
140-
applyDateRangeToRequest(requestBuilder, startDate, endDate);
141-
142-
String accessToken = getAccessToken();
143-
requestBuilder.setAuthHeader(accessToken);
144-
RestAPIResponse apiResponse = executeGetWithRetries(requestBuilder.build());
145-
return parseResponseToResultListOfMap(apiResponse.getResponseBody());
152+
LOG.info("combinedResults size:::: " + combinedResults.size());
153+
return combinedResults;
146154
}
147155

148156
private void applyDateRangeToRequest(ServiceNowTableAPIRequestBuilder requestBuilder, String startDate,

0 commit comments

Comments
 (0)