J'ai une application qui génère des threads de travail et traite les fichiers dans les threads de travail. À la demande d'arrêt de l'application, je souhaite que l'application s'arrête uniquement lorsque le thread de travail a terminé le traitement du fichier en cours (s'il traite un fichier). J'utilise JavaServiceWarapper pour gérer mon application.JavaServiceWrapper: L'application n'attend pas l'arrêt
J'ai ajouté des crochets d'arrêt qui indiquent au thread de travail de ne pas commencer à traiter un nouveau fichier lorsqu'il reçoit une demande d'arrêt.
Le traitement d'un fichier ne prend jamais plus de 30 secondes et j'ai réglé les délais à 60 secondes, juste pour être un côté sûr.
Pour une raison quelconque, lorsque je déclenche l'arrêt, mon application s'arrête immédiatement et n'attend pas que les threads de travail se terminent. Les threads de travail obtiennent la demande d'arrêt mais l'application se ferme immédiatement (et n'attend pas pendant 60 secondes)
Certains des paramètres importants que j'ai wrapper.java.mainclass = org.tanukisoftware.wrapper.WrapperSimpleApp wrapper.adviser = FALSE wrapper .debug = FALSE wrapper.disablerestarts = FAUX wrapper.jvmexit.timeout = 60 wrapper.requestthreaddumponfailedjvmexit = Vraie wrapper.shutdown.timeout = 60 wrapper.signal.mode.hup = FORWARD wrapper.startup.timeout = 300 wrapper.usesystemtime = FALSE wrapper .ping.timeout = 120
Quelqu'un peut-il m'aider avec l'erreur que je fais.
Salut Saleem, J'ai tous les threads de travail en tant que non démon. Cela n'a pas aidé :( –