Escalonamento dentro so sistema web  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Boa tarde caros amigos do GUJ....

Preciso de colocar dentro de uma aplicação web em java com estrutura de código baseada em servlets e jsp
um procedimento que todos os dias em um determinado horário, por exemplo as 00:00 hrs ele realize umas transações
na base de dados.

Estou usando PostgreSQL e não conheço uma forma de fazer isso usando esse SGBD.

Dentro do código java eu precisava que quando a minha aplicação web estiver rodando, o objeto que ainda não descobrí, imaginei uma Thread mas preciso da ajuda de vocês para confirmar isso, realizasse esse procedimento.

Obrigado pela atenção de todos...

This message was edited 1 time. Last update was at 10/03/2010 15:27:57

Gerson da S. Lima
JavaChild
[Avatar]

Membro desde: 26/03/2009 10:06:27
Mensagens: 142
Localização: Manaus
Offline

Que tipo de transações no banco são essa q você quer fazer.

Na empresa q trabalho utilizamos o postgresql em várias aplicações, e certos procedimento que queremos que ele faça, tipo backup, vacumm, etc, usamos o agendador de tarefas do windows.

Mas dá pra você fazer por thread também, sem problemas, também temos esse tipo de situação, em alguns sistemas utilizamos alguns agentes que coletam determinados dados e processam utilizando threads.

Bacharel em Ciências da Computação

Analista de Sistemas
[Email] [MSN]
cristianogro
JavaGuru

Membro desde: 18/02/2009 15:07:23
Mensagens: 233
Localização: Curitiba
Offline

tarssajava wrote:Boa tarde caros amigos do GUJ....

Preciso de colocar dentro de uma aplicação web em java com estrutura de código baseada em servlets e jsp
um procedimento que todos os dias em um determinado horário, por exemplo as 00:00 hrs ele realize umas transações
na base de dados.

Estou usando PostgreSQL e não conheço uma forma de fazer isso usando esse SGBD.

Dentro do código java eu precisava que quando a minha aplicação web estiver rodando, o objeto que ainda não descobrí, imaginei uma Thread mas preciso da ajuda de vocês para confirmar isso, realizasse esse procedimento.

Obrigado pela atenção de todos...


Dá uma olhada no Quartz Framework, através dele vc pode deixar Triggers agendadas para serem rodadas no horário que vc determinar. Veja o link: http://hotwork.sourceforge.net/hotwork/manual/quartz/quartz-user-guide.html e http://www.roseindia.net/quartz/index.shtml

This message was edited 1 time. Last update was at 10/03/2010 15:39:59


Não se mede o valor de um homem pelas suas roupas ou pelos bens que possui, o verdadeiro valor do homem é o seu caráter, suas idéias e a nobreza dos seus ideais.
wchevreuil
Thread.start()

Membro desde: 18/03/2008 16:40:53
Mensagens: 31
Offline

Outra forma simples de fazer isso é usando as classes Timer e TimerTask do pacote java.util.

Dê uma olhada nos docs:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Timer.html

[]'s

scjp, scjd, scmad, scwcd, scbcd
cristianogro
JavaGuru

Membro desde: 18/02/2009 15:07:23
Mensagens: 233
Localização: Curitiba
Offline

wchevreuil wrote:Outra forma simples de fazer isso é usando as classes Timer e TimerTask do pacote java.util.

Dê uma olhada nos docs:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Timer.html

[]'s


Se usar as classes Timer ou TimerTask chmando classe que executa uma Procedure ou Trigger certo?

Não se mede o valor de um homem pelas suas roupas ou pelos bens que possui, o verdadeiro valor do homem é o seu caráter, suas idéias e a nobreza dos seus ideais.
wchevreuil
Thread.start()

Membro desde: 18/03/2008 16:40:53
Mensagens: 31
Offline

é só implementar o o método Run e por as chamadas aos metodos de negocio (que executam o que ele precisar no BD), como se faz com Threads...

scjp, scjd, scmad, scwcd, scbcd
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Pessoal, estou muito grato pela atenção de todos vocês.
Isto favorece muito ao crescimento da nossa comunidade e é também uma atitude
de ajudar ao próximo.... e desesperado.... hehehe ( é a pressão do meu chefe )
Vou testar as opções que vocês me deram e postarei a que usei.
Um abraço a todos.
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Estou querendo usar Timer ou TimerTask, olhei a especificação dessas classes e notei as tarefas de
scheduler. Meu grande problema é:
Tenho uma aplicação web baseada em servlets e jsp's.
Em que ponto dela irei instanciar as classes anteriores? Preciso de acessar um ponto de código que o container da aplicação
mantém instanciado desde o momento que a aplicação está rodando e só parará em caso de falha ou quando a aplicação parar
de funcionar.
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Ou seja, esse objeto deve estar ativo na aplicação independente se o cliente logou ou cumpriu tal regra.
Isso é possível?
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Dei uma olhada no qurtz framework mas não identifiquei se ele é iniciado como escreví na mensagem anterior, ou seja,
desde o inico que a aplicação " vai pro ar ".
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Lendo melhor sobre o quartz: .....


O principal processo do Quartz pode ser iniciado e executado dentro da sua aplicação, como uma aplicação stand-alone (com uma user interface),

ISSO QUE EU QUERIA....
ou dentro de servidor de aplicações J2EE para ser utilizado como recurso para os componentes de sua aplicação.


Queria saber se TimerTask cumpre isso ou se o quartz seria a melhor opção.


Vou ver como fazê-la no quartz..
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Estou pensando em usar o quartz fora da aplicação web, pois ele é independente dela e contempla
as minhas regras, mas se TimerTask pudesse ser usado seria mais rápido para eu chegar na solução.
Estou me convencendo de usar o schedule.... mas por favor, se souberem se TimerTask ou Task podem
ser usadas dentro da aplicação e instanciados desde o momento que a aplicação " vai pro ar ".

This message was edited 1 time. Last update was at 11/03/2010 12:02:28

wchevreuil
Thread.start()

Membro desde: 18/03/2008 16:40:53
Mensagens: 31
Offline

Olá tarssajava. A API do J2EE possui algumas interfaces Listener para notificação de eventos. O cenário que vc me descreveu, parece-me que vc poderia resolver usando um ServletContextListener. É só vc implementar essa interface e colocar as chamadas ao seu TimerTask dentro do método contextInitialized.

Pesquise sobre o javax.servlet.ServletContextListener, eu acho que ele serve para o seu problema.

[]'s

scjp, scjd, scmad, scwcd, scbcd
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Ví uma solução onde eu usaria um Listener e um ejb onde estaria a implementação do TimerTask.
Mas a sua solução parece ser mais simples ainda. Vou estudá-la para o meu caso. Muito obrigado
pela atenção.
tarssajava
What is classpath?

Membro desde: 10/03/2010 15:10:34
Mensagens: 9
Offline

Perfeito, nem precisei de EJB, pois era uma tarefa muito particular e dependente da aplicaçãoWeb.
Valeu a atenção de todos.
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team