Pregunta

En una aplicación web Java (servlets / Spring MVC), utilizando Tomcat, es posible ejecutar un servicio cron tipo de trabajo?

por ejemplo. cada 15 minutos, purga de la base de datos de registro.

¿Se puede hacer esto de una manera que es independiente de contenedores, o tiene que ser ejecutado utilizando Tomcat o algún otro contenedor?

Por favor, especifique si se garantiza el método para ejecutar en un momento específico o una que se ejecuta cada 15 minutos, pero se puede restablecer etc, si los reciclajes de aplicación (que es como se encuentra en .NET si utiliza temporizadores)

¿Fue útil?

Solución

Como se documenta en Capítulo 23. Programación e hilo Pooling , primavera cuenta con el apoyo de programación a través de clases de integración para la Timer y el Programador de cuarzo ( http: //www.quartz- scheduler.org/ ). Para las necesidades simples, te recomiendo ir con el Timer JDK.

Tenga en cuenta que los programadores de Java se utilizan normalmente para activar Java trabajos orientados a negocios . Para las tareas de administrador de sistemas (como el ejemplo que diste), que realmente debería preferir cron y herramientas tradicionales de administración (Bash, etc).

Otros consejos

Si estás usando primavera, se puede utilizar la incorporada en el cuarzo o el temporizador de ganchos. Ver http://static.springsource.org/spring/docs /2.5.x/reference/scheduling.html

Será-contenedor específico. Puede hacerlo en Java con cuarzo o simplemente usando utilidades simultáneas de programación de Java (< a href = "http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel = "nofollow noreferrer"> ScheduledExecutorService ) o como un OS- trabajo de nivel de cron.

Cada 15 minutos parece extrema. Generalmente También me aconsejo que sólo para truncar / eliminar archivos de registro que no se están escribiendo a (y por lo general estás di la vuelta durante la noche).

Los trabajos se orientan por lotes. Ya sea por disparo manual o al estilo cron (como parece que quiere).

Todavía no consigo su relación entre webapp y de estilo cron trabajo? El caso de uso única aplicación web que podría pensar es, que desea tener un extremo HTTP para desencadenar un trabajo (pero esto se opone a su declaración acerca de ser 'cron-style').

En general utilizar un marco dedicado, que resuelve el problema del área de 'lote-jobs'. Puedo recomendar cuarzo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top