Domanda

In un'applicazione Web Java (servlet / Spring MVC), utilizzando Tomcat, è possibile eseguire un servizio cron tipo di lavoro?

es. ogni 15 minuti, eliminare il database del registro.

Si può farlo in un modo che è il contenitore indipendente, o deve essere eseguito utilizzando Tomcat o qualche altro contenitore?

Si prega di specificare se il metodo è garantito per funzionare in un momento specifico o uno che passa ogni 15 minuti, ma può essere resettato ecc se i ricicli di applicazione (che è come è in .net se si utilizzano i timer)

È stato utile?

Soluzione

Come documentato in Capitolo 23. Programmazione e il pool di thread , Primavera ha il supporto di programmazione attraverso corsi di integrazione per il Timer e quarzo Scheduler ( http: //www.quartz- scheduler.org/ ). Per esigenze semplici, vi consiglio di andare con il Timer JDK.

Si noti che di pianificazione Java sono di solito utilizzati per attivare Java lavori business oriented . Per le attività sysadmin (come l'esempio che ha dato), si dovrebbe davvero preferire cron e gli strumenti tradizionali di amministrazione (bash, ecc).

Altri suggerimenti

Se stai usando primavera, è possibile utilizzare il built-in ganci quarzo o Timer. Vedere http://static.springsource.org/spring/docs /2.5.x/reference/scheduling.html

Sarà specifici contenitori. È possibile farlo in Java con quarzo o semplicemente utilizzando pianificazione utils simultanei di Java (< a href = "http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel = "nofollow noreferrer"> ScheduledExecutorService ) o come OS- job cron livello.

Ogni 15 minuti sembra estrema. In generale mi piacerebbe anche consiglio solo per troncare / eliminare i file di registro che non sono più in fase di scritti (e sono generalmente girai durante la notte).

I lavori vengono lotto il risultato. Sia con attivazione manuale o in stile cron (come ti sembra di volere).

Ancora non ho ricevuto il tuo rapporto tra webapp e cron-stile di lavoro? Il caso d'uso solo webapp mi veniva in mente è, che si vuole avere un endpoint HTTP per innescare un lavoro (ma questo si oppone la sua dichiarazione di essere 'cron-style').

In generale utilizzare un framework dedicato, che risolve il problema-zona 'partita-posti di lavoro'. Posso consigliare al quarzo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top