Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
AMB

correr duas classes do mesmo package de forma intercalada

Recommended Posts

AMB

Boa Tarde

É o seguinte eu tenho um projecto que possui um package e nesse package tenho duas classes que estão a correr de forma automática de 10 em 10 minutos.

Mas a classe A tem de correr sempre primeiro que a B. Como posso por a B só a correr depois de a A estar terminada?

Estou utilizando o eclipse.

Obrigada

Share this post


Link to post
Share on other sites
Knitter

Já não é a primeira vez que mencionas o Eclipse, o curioso é que o IDE pouco ou nada terá a ver com o código ;)

De qualquer forma, o que era importante era saber como é que estás a fazer as classes serem executadas periodicamente. O que é que estás a usar para iniciar e repetir a execução, dado que aí poderá estar a resposta.

Share this post


Link to post
Share on other sites
AMB

eu tenho o seguinte código nas duas classes:

antes do main

public static final long Tempo = 60000; //repete o código a cada 60000milissegundos = 1minuto

dentro do main

{
System.out.println("A iniciar....");
Timer timer = null;
if(timer == null){
	timer = new Timer();
	TimerTask tarefa = new TimerTask(){
	public void run(){
		try{
			System.out.println("Continua...");
			lerficheiro();
		}catch (Exception e){
			e.printStackTrace();
		}
	}
};
timer.scheduleAtFixedRate(tarefa, Tempo, Tempo); //o código pós main, é o que permite a repetição da execução do código a cada x tempo anteriormente definido (neste caso = 1 minuto)
      }
}
}

Obrigada

Share this post


Link to post
Share on other sites
Knitter

OK, estás a usar Timers para iniciar as tarefas, e estas classes não têm forma de te dizer se já terminaram a tarefa. A única coisa que me lembro será, na tarefa da classe A que executas, colocares uma mecanismo de controlo que te diga que a tarefa terminou, uma simples variável deve ser suficiente.

Tens de encontrar uma forma de apenas iniciar a segunda tarefa se a primeira já terminou, ou usas um ciclo que bloqueie o código ou outro mecanismo qualquer.

Se tens este tipo de dependência não seria mais simples, a tarefa da classe A chamar a tarefa da classe B quando terminar?

Share this post


Link to post
Share on other sites
Knitter

Invocas o método que precisas? Acedes à instância e invocas o método como é normal em Java, não percebi bem a pergunta.

Tu é que sabes como é que o código está feito, como é que as classes funcionam e como que é se interligam, tu é que tens de saber como é que podes a partir do primeiro método aceder ao segundo, ou até se isso é impossível.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.