0

我在同时运行两个任务时遇到了麻烦。

我有一个界面:

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,它们都像:

@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);
}

MyTaskOne 和 MyTaskTwo 的区别,除了 run() 的内容,就是 cron 间隔,MyTaskOne 是 ("0 */31 * * * ?"),MyTaskTwo 是 ("0 */37 * * * ?")。

发生的事情是 MyTaskOne 首先初始化,而 MyTaskTwo 仅在 MyTaskOne 完成后进行,我想同时运行两者,如何轻松设置?

服务器有 apache-tomcat 6。

任何帮助表示感谢,对任何语法错误深表歉意!

4

1 回答 1

0

使用线程解决。

将我的任务实现为 ScheduledTask 和 Runnable,

使用带有信号量的线程来控制效果非常好。

于 2012-02-15T17:43:06.297 回答