Ho un requisito in cui un tasklet memorizza tutti i file nelle directory in un array. La dimensione della lista è memorizzata nel contesto di esecuzione del lavoro. Successivamente questo conteggio è accessibile da un'altra tasklet in un altro passo. Come lo fanno? Ho cercato di conservare in un contesto jobexecution, a runtime genera un'eccezione raccolta immodificabile,Memorizzazione in JobExecutionContext dal tasklet e accesso in un'altra tasklet
public RepeatStatus execute(StepContribution arg0, ChunkContext arg1)
throws Exception {
StepContext stepContext = arg1.getStepContext();
StepExecution stepExecution = stepContext.getStepExecution();
JobExecution jobExecution = stepExecution.getJobExecution();
ExecutionContext jobContext = jobExecution.getExecutionContext();
jobContext.put("FILE_COUNT",150000);
memorizzato anche il riferimento stepexection in beforestep annotazione non .still possioble.kindly fatemi sapere, come condividere i dati tra due tasklets.
grazie guarderò questo. Voglio un valore in jobexecutioncontext da estrarre dal bean JobExecutionDecider –
@MichaelLange: Perché il codice originale di Suresh genera un'eccezione? Sembra semanticamente uguale allo snippet di codice che hai fornito. –
beh dovrebbe funzionare, immagino che abbia usato 'chunkContext.getStepContext(). GetJobExecutionContext(). Put (...)' prima, questo genererebbe l'eccezione non modificabile –