0

2 つのタスクを同時に実行するのに問題があります。

私はインターフェースを持っています:

import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.Trigger;

public interface ScheduledTask extends Runnable {
  public void schedule(final TaskScheduler taskScheduler, final Trigger triggerInterval);
}

そして、MyTaskOne と MyTaskTwo と呼ぶ 2 つの同様のクラスは、どちらも次のようになります。

@Component
@ApplicationScoped
public class MyTaskOne implements ScheduledTask  {
  public TaskOne(final TaskScheduler taskScheduler) {
    this.scheduler(agendadorDeTarefas, new CronTrigger("0 */31 * * * ?"));
    }
}

@Override
public void run() {
      //Bla bla bla
}

@Override
public void scheduler(final TaskScheduler taskscheduler, final Trigger triggerInterval) {
    taskscheduler.schedule(this, triggerInterval);
}

run() の内容以外に、MyTaskOne と MyTaskTwo の違いは cron 間隔で、MyTaskOne は ("0 */31 * * * ?")、MyTaskTwo は ("0 */37 * * * ?") です。

MyTaskOne が最初に初期化され、MyTaskOne が終了した後にのみ MyTaskTwo が実行されます。両方を同時に実行したいのですが、どうすれば簡単にセットアップできますか?

サーバーには apache-tomcat 6 があります。

助けていただければ幸いです。文法の間違いについては申し訳ありません。

4

1 に答える 1

0

スレッドを使用して解決しました。

私のタスクをScheduledTaskおよびRunnableとして実装しました。

セマフォでスレッドを使用して制御することは非常にうまくいきました。

于 2012-02-15T17:43:06.297 に答える