Pergunta

Em uma aplicação web java (servlets / Spring MVC), usando tomcat, é possível executar um serviço de cron tipo de trabalho?

por exemplo. a cada 15 minutos, limpar o banco de dados de log.

Você pode fazer isso de uma forma que é recipiente independente, ou tem que ser executado usando tomcat ou algum outro recipiente?

Por favor, especifique se o método é garantido para ser executado em um momento específico ou um que passa a cada 15 minutos, mas pode ser redefinido etc. se os recicla aplicação (que é como é em .net se você usar temporizadores)

Foi útil?

Solução

Tal como documentado no Capítulo 23. Programação e Passe Pooling , Primavera tem suporte a programação através de aulas de integração para o Timer eo Scheduler Quartz ( http: //www.quartz- scheduler.org/ ). Para necessidades simples, eu recomendo ir com o Timer JDK.

Note que programadores Java são normalmente utilizados para acionar Java tarefas de negócios orientados . Para tarefas de sysadmin (como o exemplo que você deu), você deve realmente preferem cron e ferramentas tradicionais de administração (bash, etc).

Outras dicas

Se você estiver usando Spring, você pode usar o built-in de quartzo ou temporizador ganchos. Consulte http://static.springsource.org/spring/docs /2.5.x/reference/scheduling.html

Será específicos do recipiente. Você pode fazê-lo em Java com Quartz ou simplesmente usando agendamento utils simultâneos de Java (< a href = "http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel = "nofollow noreferrer"> ScheduledExecutorService ) ou como uma OS- trabalho de nível de cron.

A cada 15 minutos parece extremo. Geralmente eu também aconselhá-lo apenas para arquivos de log Truncate / DELETE que não estão mais sendo escritos (e eles são geralmente rolou durante a noite).

Os trabalhos são orientados lote. Quer por gatilho manual ou cron-estilo (como você parece querer).

Ainda eu não fizer a sua relação entre webapp e cron-estilo de trabalho? O caso de uso única webapp que eu poderia pensar é que você quer ter um ponto de extremidade HTTP para desencadear um trabalho (mas isso se opõe a sua declaração sobre ser 'cron-style').

Geralmente usar uma estrutura dedicada, que resolve o problema-área 'batch empregos'. Posso recomendar quartzo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top