Pergunta

Qual é a melhor / mais fácil para executar tarefas periódicas (como um fio daemon) em um servidor tomcat / Pontão? Como faço para começar a rosca? Existe um mecanismo simples ou isso é uma má idéia, afinal?

Foi útil?

Solução

Está tudo bem e eficaz para esconder uma instância em sua ServeletContext java.util.Timer (ou melhor ainda ScheduledExecutor). Criá-lo em uma chamada de inicialização do servlet () e todos os seus servlets pode adicionar TimerTasks a ele.

Outras dicas

Se quiser manter tudo no lado java, dar uma olhada para Quartz .
Ele lida com failover e de granulação fina repartição dos postos de trabalho, com a mesma flexibilidade de trabalhos do cron.

Um dos propósitos maneira geral que funciona para muitos sistemas é simplesmente ter um trabalho cron que executa uma wget periódica contra a sua aplicação.

Eu não posso responder as coisas tomcat / Pontão, mas eu tenho feito coisas semelhantes com aplicativos baseados na web Python.

Eu normalmente basta executar um aplicativo separado que faz as tarefas periódicas necessárias. Se interoperabilidade é necessária entre o site e o aplicativo, que a comunicação pode acontecer através de algum tipo de API (usando algo como XML-RPC / sockets Unix / etc) ou mesmo apenas através da camada de banco de dados, se é adequada.

Espero que ajude.

Se você quiser usar um trabalho cron, mas não têm acesso administrativo ao sistema de desenvolvimento, você pode fazer um crontab de usuário executando o comando:

crontab -e

Ele usa vi por padrão na maioria dos sistemas, mas você pode alterá-lo para o editor de sua escolha via:

export EDITOR=/usr/local/bin/my_editor

Em seguida, executar o comando crontab -e vai lançar seu arquivo crontab em seu editor. Ao salvar, as mudanças vão estar de volta comprometido em cron do sistema.

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