redatores de trabalhos em lotes fáceis

O papel dos escritores de lotes fáceis é gravar registros para afundar

Coletor de dados suportados

  • Com referência à figura
    de forma oficial

     

     

Notas e dicas

  • Processe transações de banco de dados em JdbcRecordWriter. Após cada lote, uma transação é criada e confirmada / revertida.
  • O JpaRecordWriter espera um objeto Java como entrada, não um Registro. Antes de passar o registro para, certifique-se de mapear o registro para o seu tipo de objeto de domínio JpaRecordWriter. Processe transações do banco de dados no JpaRecordWriter. Após cada lote, uma transação é criada e confirmada / revertida.
  • O HibernateRecordWriter espera um objeto Java como entrada, não um Registro. Antes de passar o registro para, certifique-se de mapear o registro para o seu objeto de domínio, digite HibernateRecordWriter. O autor lida com transações do banco de dados. Após cada lote, uma transação é criada e confirmada / revertida.

Falha no processamento de gravação de dados

Às vezes, o receptor de dados pode estar temporariamente indisponível. Nesse caso, o gravador de registros não poderá gravar dados e o trabalho será abortado. O RetryableRecordWriter pode ser usado para gravar dados no RetryPolicy usando o delegado Repetir RecordWriter.

 
Job job = new JobBuilder ()
    . writer ( new RetryableRecordWriter ( unreliableDataSinkWriter, new RetryPolicy ( 5, 1, SECONDS))))
    . Construir();

Isso fará com que o gravador tente novamente até 5 vezes, aguardando um segundo entre cada tentativa. Se o receptor de dados não puder ser acessado após 5 tentativas, o trabalho será abortado.

Verificação em lote

Após a ativação, se ocorrer uma exceção durante o processo de gravação em lote, uma varredura em lote será iniciada. Tente escrever os registros um por um como um singleton. Dessa forma, você pode pular o registro errado e continuar executando o trabalho, em vez de falhar em todo o trabalho no primeiro lote com falha.
Esse recurso é usado em conjunto com o gravador de transações para executar com êxito operações de gravação com falha sem efeitos colaterais. No entanto, uma limitação conhecida é que, quando usado com um gravador não transacional, um item pode ser gravado duas vezes (por exemplo, no caso de um gravador de arquivo, o fluxo de saída é atualizado antes que ocorra uma exceção). Para evitar isso, você deve executar uma operação de reversão manual no método BatchListener # onBatchWritingException.

Referências

https://github.com/j-easy/easy-batch/wiki/writers

Acho que você gosta

Origin www.cnblogs.com/rongfengliang/p/12730111.html
Recomendado
Clasificación