Abbiamo un'applicazione web Spring 3 su Tomcat 6 che utilizza diversi servizi di pianificazione tramite @Scheduled
(principalmente per i lavori che vengono eseguiti ogni notte). Ora sembra che a volte (raramente, forse una volta in due mesi o giù di lì) il thread dello scheduler smetta di funzionare, quindi nessuno dei lavori verrà eseguito nella notte seguente. Non ci sono eccezioni o voci di registrazione nei nostri file di registro.Spring Scheduler si arresta in modo imprevisto
Qualcuno ha idea del perché questo sta accadendo? O come ottenere maggiori informazioni su questo problema?
C'è un modo per rilevare questa situazione all'interno dell'applicazione e riavviare lo scheduler?
Attualmente stiamo risolvendo questo problema avendo anche un processo di registrazione che viene eseguito ogni 5 minuti e crea una voce di registro. Se il file di registro smette di essere aggiornato (monitorato da nagios), sappiamo che è il momento di riavviare Tomcat. Sarebbe bello riavviare i lavori senza un riavvio completo del server.
Qual è il lavoro svolto nelle attività pianificate? È possibile che qualcosa si blocchi in un ciclo infinito? Chiedo perché le attività pianificate, per impostazione predefinita, utilizzano un threadpool di 1 thread e, se viene bloccato in qualche modo, le attività future non verranno avviate (ma sono sicuro che verranno accodate). –
@ nicholas.hauschild Chiama un servizio web REST esterno. Quindi stai dicendo che una tale richiesta potrebbe eventualmente bloccare (deadlock?) E quindi interrompere tutti gli altri lavori. Penso che richiederò un dump del thread del server se questo dovesse accadere di nuovo. Grazie per il tuo contributo. – obecker
Prendere una discarica di filo sarà probabilmente una buona idea. –