同时执行两项任务我遇到了麻烦。
我有一个界面:
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);
}
除了run()的内容之外,MyTaskOne和MyTaskTwo之间的区别是cron间隔,MyTaskOne是(“0 * / 31 * * *?”)而MyTaskTwo是(“0 * / 37 * * *? “)。
什么是happing是MyTaskOne首先初始化,MyTaskTwo只在MyTaskOne完成之后,我想同时运行两个,我怎样才能轻松设置它?
服务器有apache-tomcat 6。
感谢任何帮助,对任何语法错误感到抱歉!
答案 0 :(得分:0)
使用线程解决。
将我的任务实现为ScheduledTask和Runnable,
使用具有信号量的线程来控制效果非常好。