Я создаю Spring Batch работу с folowing XML:Как запустить чтение() функцию только один раз Spring Batch
<batch:job id="simulatorJob" restartable="false">
<batch:step id="step1">
<batch:tasklet transaction-manager="transactionManager">
<batch:chunk reader="stockListner" writer="customWriter"
commit-interval="5">
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
<bean id="transactionManager" class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
<bean id="stockListner" class="com.XXX.stock.java.StockReader" scope="step">
<property name="URL" value="NTPC,TCS" />
<!-- <property name="URL" value="NTPC" /> -->
<!-- <property name="URL" value="TCS" /> -->
</bean>
<bean id="customWriter" class="com.XXX.stock.java.FlatFileWriter" />
Это мой читатель класс:
private String URL;
public String getURL() {
return URL;
}
public void setURL(String uRL) {
URL = uRL;
}
public ArrayList<StockData> read() throws Exception, UnexpectedInputException,ParseException, NonTransientResourceException {
ArrayList<StockData> list = new ArrayList<StockData>();
String[] splitStocks = URL.split(",");
for(int i=0; i < splitStocks.length;i++){
list.add(stockReader.getStockData(splitStocks[i]));
}
return list;
}
Но класс читатель держит при работе. Как я могу остановиться при первом запуске?
Я попробовал этот Aswell:
public StockData read() throws Exception, UnexpectedInputException,ParseException, NonTransientResourceException {
ArrayList<StockData> list = new ArrayList<StockData>();
String[] splitStocks = URL.split(",");
for(int i=0; i < splitStocks.length;i++)
{
return stockReader.getStockData(splitStocks[i]);
}
return null;
}
для чтения() функция переходит в петлю ..
Как этот код может быть вписан в этот сценарий .. – Aman
Я считаю, что @Aman имеет более одного элемента' StockData' для чтения в отличие от того, что предложила его первая попытка (т. е. объявить 'ArrayList read()'). –
проверить мое редактирование ... –