java - mkyong - ¿Es posible ejecutar un trabajo cron en una aplicación web?
quartz java example (4)
Los trabajos están orientados por lotes. Ya sea por disparo manual o cron-style (como parece querer).
¿Todavía no entiendo tu relación entre webapp y el trabajo al estilo cron? El único caso de uso de aplicaciones web en el que podría pensar es que desea tener un punto final HTTP para desencadenar un trabajo (pero esto se opone a su afirmación acerca de ser ''cron-style'').
En general, utilice un marco dedicado, que resuelve los "trabajos por lotes" del área problemática. Puedo recomendar el cuarzo.
En una aplicación web java (servlets / spring mvc), utilizando tomcat, ¿es posible ejecutar un servicio de tipo cron job?
por ejemplo, cada 15 minutos, purgue la base de datos de registro.
¿Puedes hacer esto de una manera que sea independiente del contenedor, o debe ejecutarse usando tomcat o algún otro contenedor?
Especifique si el método está garantizado para ejecutarse en un momento específico o uno que se ejecute cada 15 minutos, pero puede reiniciarse, etc., si la aplicación se recicla (así es como está en .net si usa temporizadores)
Será específico del contenedor. Puede hacerlo en Java con Quartz o simplemente utilizando las utilidades simultáneas de programación de Java ( ScheduledExecutorService
) o como un trabajo cron de nivel de sistema operativo.
Cada 15 minutos parece extremo. Generalmente, también le aconsejo que trunque / elimine archivos de registro que ya no se escriben (y generalmente se transfieren de la noche a la mañana).
Si está utilizando Spring, puede usar los ganchos incorporados Quartz o Timer. Ver http://static.springsource.org/spring/docs/2.5.x/reference/scheduling.html
Como se documenta en el Capítulo 23. Programación y agrupamiento de subprocesos , Spring tiene soporte de programación a través de clases de integración para el Timer
y el programador de Quartz ( http://www.quartz-scheduler.org/ ). Para necesidades simples, recomiendo ir con el JDK Timer
.
Tenga en cuenta que los programadores de Java generalmente se usan para desencadenar trabajos orientados a negocios de Java. Para las tareas de administrador del sistema (como el ejemplo que proporcionó), realmente debería preferir las herramientas de administración cron y tradicional (bash, etc.).