materialReader 타임아웃 발생 - qsp.master-material-batch pagesize 로 배치변경
This commit is contained in:
parent
73c341a395
commit
d0283ad453
@ -4,8 +4,11 @@ import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.interplug.qcast.biz.displayItem.DisplayItemService;
|
||||
import com.interplug.qcast.biz.displayItem.dto.ItemSyncResponse;
|
||||
import com.interplug.qcast.util.InterfaceQsp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.springframework.batch.core.Job;
|
||||
import org.springframework.batch.core.JobExecutionListener;
|
||||
import org.springframework.batch.core.Step;
|
||||
@ -34,6 +37,9 @@ public class MaterialConfiguration implements JobExecutionListener {
|
||||
@Value("${qsp.master-material-batch-url}")
|
||||
private String qspInterfaceUrl;
|
||||
|
||||
@Value("${qsp.master-material-batch-page-size:1000}")
|
||||
private int pageSize;
|
||||
|
||||
public MaterialConfiguration(DisplayItemService displayItemService, InterfaceQsp interfaceQsp) {
|
||||
this.displayItemService = displayItemService;
|
||||
this.interfaceQsp = interfaceQsp;
|
||||
@ -58,12 +64,32 @@ public class MaterialConfiguration implements JobExecutionListener {
|
||||
@Bean
|
||||
@StepScope
|
||||
public ListItemReader<ItemSyncResponse> materialReader() throws Exception {
|
||||
this.itemSyncList =
|
||||
interfaceQsp.callApiData(
|
||||
HttpMethod.GET,
|
||||
qspInterfaceUrl + "?allYn=N",
|
||||
null,
|
||||
new TypeReference<List<ItemSyncResponse>>() {});
|
||||
List<ItemSyncResponse> aggregated = new ArrayList<>();
|
||||
int page = 1;
|
||||
while (true) {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("allYn", "N");
|
||||
params.put("page", page);
|
||||
params.put("size", pageSize);
|
||||
|
||||
List<ItemSyncResponse> pageItems =
|
||||
interfaceQsp.callApiData(
|
||||
HttpMethod.GET,
|
||||
qspInterfaceUrl,
|
||||
params,
|
||||
new TypeReference<List<ItemSyncResponse>>() {});
|
||||
|
||||
if (pageItems == null || pageItems.isEmpty()) {
|
||||
break;
|
||||
}
|
||||
|
||||
aggregated.addAll(pageItems);
|
||||
if (pageItems.size() < pageSize) {
|
||||
break;
|
||||
}
|
||||
page++;
|
||||
}
|
||||
this.itemSyncList = aggregated;
|
||||
return (itemSyncList != null)
|
||||
? new ListItemReader<>(itemSyncList)
|
||||
: new ListItemReader<>(Collections.emptyList());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user