Bonjour,
Le contexte : J'utilise Talend ESB pour exposer un web service qui permet de déclencher des traitements batchs (en java).
J'ai donc besoin de lancer en tâche de fond un script powershell, afin que le web service puisse renvoyer la réponse dès le déclenchement du script, sans attendre la fin de ce script.
Du coup j'ai trouvé la commande Start-Job qui semble bien correspondre à ce que je veux faire. Ca fonctionne lorsque je le teste dans une fenêtre Powershell.
Mais le composant que j'utilise pour l'appeler depuis Talend ESB doit passer par le programme powershell.exe pour pouvoir l'exécuter.
En synthèse j'essaie de faire ça (J'ai simplifié la commande pour tester) :
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part powershell.exe -NonInteractive -ExecutionPolicy Bypass -NoProfile -c "Start-Job -ScriptBlock {Start-Sleep 5; Write-Output `"$(Get-Date) Exécution OK`" 2>&1 1>> C:/logs/log_runjob } "
Et le résultat est que ça ne fonctionne pas. (Mon fichier de log n'est pas mis à jour)
J'ai testé en ajoutant un ;Get-Job | Wait-Job à la fin de la commande, et ça fonctionne bien. Mais ce n'est pas ce que je veux puisque ça ne rend la main qu'à la fin de la commande.
J'ai trouvé un message qui a l'air de parler du même soucis, et ils sont arrivés à la même conclusion que moi :
https://community.idera.com/database...background-job
Mais le lien qu'il propose n'est plus accessible.
Je suis preneur de toute idée.
Par avance merci,
Nicolas
Partager