Ola, bom dia a todos…preciso fazer com que uma informação que chega em uma classe que implementa um Runnable, seja gravada a cada 15 minutos no banco de dados…alguem conhece o padrão Observer?
Obrigada desde já… 
Ola, bom dia a todos…preciso fazer com que uma informação que chega em uma classe que implementa um Runnable, seja gravada a cada 15 minutos no banco de dados…alguem conhece o padrão Observer?
Obrigada desde já… 
Tem um tutorial no GUJ que explica como usar Observer…
Entretanto no seu caso como é pediódico (15min), provavelmente vc usaria só Timer e TimerTask mesmo.
Oi,
Não conheço este padrão, mas caso a idéia seja simplesmente executar determinada tarefa com intervalo de tempo regular, você poderia usar o esquema de agendamento de tarefas que a classe TimerTask e Timer dispõem.
Para tanto, você deve criar e instanciar um Timer, e chamar seu método scheduler() passando como parâmetros o intervalo entre as execuções em milisegundos e uma instância da classe criada por você que extende a TimerTask (esta deve ter um método run(), que é o trecho efetivamente executado a cada intervalo).
Espero ter ajudado, 
Obrigada pela ajuda…eu vou tentar ver o tutorial no guj sobre o padrao…na vdd, esta padrao foi um ex-professor que disse pra ser usado …sobre o timer, eu xeguei a baixar alguns exemplos pra usar…vamos ver, vou tentar por aqui…
caso nao consiga, falo de novo…brigada
vlw, abraço…
mcz…sera que vc poderia por favor postar um codigo de exemplo desta instaciacao da Timer em uma classe que tem o Runnabe?Desculpe, mas estou começando com java ainda, e como vc deve ter percebido, estou bem perdida…
:oops:
mcz...sera que vc poderia por favor postar um codigo de exemplo desta instaciacao da Timer em uma classe que tem o Runnabe?Desculpe, mas estou começando com java ainda, e como vc deve ter percebido, estou bem perdida...:oops:
Então juliane,
É bem simples. Primeiro você deve criar uma classe que extenda a TimerTask(), e que implemente um método run() (onde efetivamente estará a ação a ser executada periodicamente):
import java.util.TimerTask;
public class Tarefa extends TimerTask {
public void run() {
System.out.println("Iniciando tarefa...");
/*
*
* TAREFA!
*
* */
System.out.println("Tarefa concluida...");
}
}
E para agendar sua execução:
Timer timer = new Timer();
timer.schedule(new Tarefa(), 60000); /* Executa Tarefa.run() a cada 60.000 milisegundos. */
Espero ter ajudado, qualquer coisa, escreve aí!
:wink:
public void run() {
Timer timer = null;
while(true){
try {
msg = this.msgAtivo.poll(50,TimeUnit.MILLISECONDS);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
if(msg != null){
nego = msg.split("!");
String aux = nego[0];
negociacao = aux.split(":");
System.out.println("negociacao" + negociacao[0]);
timer = new Timer();
TimerTask controle = new TimerTask() {
public void run() {
int cont = 0;
if(negociacao.length > 2){
atualizaCotacaoTelnet();
}
}
};
timer.scheduleAtFixedRate(controle,TEMPO,TEMPO2);
}
}
}
Não sei se ajuda, mas segue exemplo de aplicação com Design Pattern Observer:
http://www.patternizando.com.br/2011/03/design-pattern-observer-com-aplicacao-swing-jse/’