/ / Intégration des ressorts invoquant Spring Batch - démarrage à ressort, intégration des ressorts, suspension à ressorts

Intégration de ressort Invoking Spring Batch - démarrage à ressort, intégration à ressort, lot à ressort

Je cherche juste des informations si d’autres ontrésolu ce motif. Je souhaite utiliser Spring Integration et Spring Batch ensemble. Ces deux applications sont des applications SpringBoot. Idéalement, je souhaiterais les séparer de leur configuration respective. C’est donc leur propre fichier jar exécutable. J’ai des difficultés à les exécuter dans leur propre espace de processus et je crois que je veux, sauf si peut me convaincre du contraire, chacun fonctionne comme s'il était sa propre application Spring Boot et s'initialise avec ses propres profils et propriétés. Ce qui me pose problème, c’est l’invocation du travail dans mon projet SpringBatch à partir de mon projet SpringIntegration. Au début, je ne pouvais pas obtenir les propriétés chargées à partir du projet batch; j’ai donc réalisé que je devais passer le printemps.active. profils comme un paramètre de travail et qui semblait résoudre ce problème. Mais il y a d’autres choses dans l’application Spring Boot Batch qui ne se chargent pas correctement, comme le fichier schema-platform.sql, la base de données n’a pas été initialisée, etc.

Sur ce lancement initial du travail je pourrais vouloirla réponse pour revenir à l’intégration de Spring pour certains messages sur l’état du travail. Il peut arriver que je souhaite exécuter une tâche sans que Spring Integration ne la lance, mais que je profite tout de même de l'envoi des statuts au projet Spring Integration, qui l'écoute sur un canal ou quelque chose du genre.

J'ai passé en revue plusieurs échantillons de Spring etCependant, pour trouver mon scénario exact, la plupart des deux dépendances sont dans le même projet, alors je fais peut-être quelque chose qui n’est pas possible, mais je suis sûr que je manque juste un petit quelque chose dans la configuration Spring.

Mes questions / problèmes sont:

  • Je ne veux pas que le projet Spring IntegrationJe ne sais rien de la configuration SpringBatch autre que le travail qu’elle commence. J'ai trouvé un bon moyen de faire cette référence au bean de travail sans obtenir le chargement complet de la configuration par lots.
  • Devrais-je garder ces deux projets séparés ou serait-il préférable de les combiner puisque je dispose d'une communication bidirectionnelle entre les deux.
  • Comment le travail devrait-il être lancé à partir de l'intégrationprojet. Nous utilisons le projet Spring-batch-integration avec JobLaunchRequest et JobLauncher. Cela semble s’exécuter dans le même processus que le projet Spring Integration et il me manque beaucoup d’initialisation de mes projets SpringBootBatch.
  • Devrais-je utiliser un CommandLineRunner à la place pour le forcer à un autre processus.
  • SpringApplication.run (BatchConfiguration.class) est-il la réponse?

Vous recherchez une configuration générale du projet pour répondre à ces exigences.

Réponses:

0 pour la réponse № 1

Spring Cloud Data Flow en combinaison avec SpringCloud Task fait exactement ce que vous demandez. Il lance des applications Spring Cloud Task (pouvant contenir des travaux par lots) en tant que nouveaux processus sur la plate-forme de votre choix. Je vous encourage à consulter ce projet ici: http://cloud.spring.io/spring-cloud-dataflow/