2015-03-26 2 views
0

Je travaille sur SpringBatch en utilisant .bat et .sh. Lorsque j'utilise le drapeau -stop, je pense que je devrais attendre un code de sortie non nul si le travail n'existe pas ou n'est pas en cours d'exécution. En réalité, j'obtiens 0 si le travail s'est terminé sans erreur.état de sortie CommandLineJobRunner sur commande d'arrêt

Où est-ce que je me trompe?

Répondre

0

Lorsque vous utilisez le CommandLineJobRunner pour arrêter un emploi, ce que vous faites vraiment fait une demande d'arrêter un emploi. Le CommandLineJobRunner retourne une fois la demande faite, pas une fois que le travail s'arrête parce que cela pourrait être une durée indéterminée. La seule façon que vous obtiendrez un code de retour non zéro à l'aide du CommandLineJobRunner pour arrêter un emploi est si le travail ne fonctionne pas (ou ne se trouve pas dans le JobRepository).

+0

D'accord, je comprends le comportement, mais dans mon cas, le travail est bien terminé. (Marquer comme COMPLÉTÉ dans la base de données). Dans ce cas, pourquoi "-stop" me renvoie 0? –

+0

'CommandLineJobRunner' devrait renvoyer 0 s'il a trouvé le travail à arrêter. N'est-ce pas ce que vous voyez? Le seul inconvénient est qu'il ne va pas attendre jusqu'à ce que le référentiel de travail soit marqué 'COMPLETED' pour retourner. –

+0

Ok, je suis dummy, je ne courais pas le bon fichier –