Spring Batch - Passer L'Enregistrement Sur Les Processus
Je voulais sauter certaines enregistrement sur le processus.
ce que j'ai essayé, j'ai créé exception personnalisée et jeter l'exception quand je veux sauter l'enregistrement et le son de l'appel de la Sauter auditeur onSkipInProcess méthode.Son travail très bien.
veuillez trouver la configuration.
<batch:chunk reader="masterFileItemReader" writer="masterFileWriter" processor="itemProcessor" commit-interval="5000" skip-limit="100000" >
<batch:skippable-exception-classes>
<batch:include class="org.springframework.batch.item.file.FlatFileParseException"/>
<batch:include class="com.exception.SkipException"/>
</batch:skippable-exception-classes>
<batch:listeners>
<batch:listener ref="recordSkipListener"/>
</batch:listeners>
Mais je voudrais savoir est-il un autre moyen de sauter l'enregistrement sur le processus?
Ce qui concerne,
Shankar
oui, on peut sauter l'enregistrement sur coditional base.s'il vous plaît trouver l'extrait de code beelow ce
Vous pouvez toujours lire les docs ici et ici. Vous pouvez également trouver de bons exemples ici.
Vous pouvez toujours lire les docs ici et ici. Vous pouvez également trouver de bons exemples ici.
OriginalL'auteur Shankar | 2015-03-13
Vous devez vous connecter pour publier un commentaire.
Il y a en effet deux façons de le faire, comme vous le mentionnez avec skip mécanisme et l'autre avec le retour des
null
qui va filtrer élément et de ne pas l'écrire. Voici documentation lien - 6.3.2. Le filtrage des enregistrements où il est joliment expliqué quelle est la différence entre les deux approches. Aussi cette post de blog explique sauter dans les détails et les transactions dans le lot.Lorsque vous c'est à dire analyser le fichier csv et vous vous attendez à 5 pièces par ligne, mais une ligne contient 6 éléments élément non valide, et vous pouvez choisir de l'ignorer (par marquage lecteur exception comme désactivables et la définition de la condition de la politique que vous avez donné l'exemple). Toutefois, si chaque ligne a nom et votre cas est de ne pas écrire des articles qui commencent par la lettre
N
qui est mieux mis en œuvre avec le retour desnull
(filtrage de l'élément), puisqu'il est valide, mais pas selon votre.Veuillez noter également que si vous retournez
null
nombre de ces articles seront enStepContext
dansgetFilterCount()
et si vous utilisez le saut de l'approche qu'ils seront engetReadSkipCount()
,getProcessorSkipCount
etgetWriteSkipCount
respectueusement.Salut Nenad, getFilterCount() la méthode est en StepExecution classe, comment obtenir ce par le biais de java?je voudrais prendre le nombre d'enregistrements ignorés dans le travail.
Dans mon test, je suis en cours d'exécution d'emplois et d'économie que l'exécution de la tâche et lorsque je veux vérifier combien sont filtrés utilisation
jobExecution.getStepExecutions()
qui est de la collection, mais je peux courir à travers elle et de trouver mon étape de l'exécution par un nom qui a la méthodegetFilterCount()
Merci beaucoup @Nenad...
OriginalL'auteur Nenad Bozic
Retourner la valeur null ignorer l'enregistrement particulier être conservées dans la base de données
Si vous avez besoin d'un régulier à sauter qui est de filtrer enregistrement en fonction de critères que vous pouvez identifier les valeur null à ignorer les enregistrements en cours d'écriture. Le onSkipInProcess doit être utilisé lorsqu'une exception se produit lors de la transformation et de continuer le traitement, mais souhaitez prendre des mesures pour l'enregistrement d'erreur (journalisation, alertes e-mail)
De retour
null
ne sera pas exactement ignorer... Retournull
voudrais juste filtre. Sauter est utilisé pour la gestion des exceptions. Lire le la documentation liée par Nenad.Avez-vous été en mesure de résoudre ce problème ?
Désolé, je ne me rappel Il y a quelques temps je suis passé par cette question. Mais je vous recommande la lecture de la documentation.
OriginalL'auteur Baji Shaik
lorsque nous retourner la valeur null dans la méthode process (), il va filtrer l'enregistrement et d'augmenter le filtre comte.
Si Nous voulons sauter l'enregistrement , de lever une exception. Cela permettra de sauter l'enregistrement et l'augmentation processSkipCount.
Ajouter cette Exception fichier de contexte.
OriginalL'auteur AKT
Il y a, ainsi, une autre façon de ne pas écrire (en sautant) quelque chose. Par exemple, disons que nous avons de cette étape:
Supposons que premier auteur va écrire toutes les valeurs, mais dans le même temps, la deuxième écrivain ignorer certains d'entre eux. Pour arriver à cela, nous avons pu étendre notre écrivain(par ex. FlatFileItemWriter), et de remplacer la méthode d'écriture comme ceci:
OriginalL'auteur MaxKing