H5W3
当前位置:H5W3 > java > 正文

【Java】Spring的定时任务<task:scheduled-tasks>问题

请问一下有一个定时任务Task每3秒钟执行一次,在这个定时任务的for循环里创建A,每次开启一个线程将A丢进去,A继承Runnable接口,run方法运行10s

<bean id="timerATask" class="xxxxxx.A"></bean>
<task:scheduled-tasks>
<task:scheduled ref="timerATask" method="task" cron="*/3 * * * * ?"/>
</task:scheduled-tasks>

有两个问题
1.每次循环是不是taskExecutor.execute(t1);执行完就会执行下一次for循环,和新开启线程内的run方法是否被执行结束没关系吧
2.for循环1000次执行完成后,但是run方法中的执行时间为10s是超过3s的没有执行完,定时任务到3s的时候还会继续执行吗,还是说等所有run方法结束后等3s才执行


public class Task {
private static Logger logger = LoggerFactory.getLogger(Task.class);
@Resource(name = "taskExecutor")
private TaskExecutor taskExecutor;
public void task() {
logger.info("==========开始执行定时任务==========");
for (int x = 0; x < 1000; x++) {
try {
A a = new A(x);
Thread t1 = new Thread(a);
taskExecutor.execute(t1);
} catch (Exception e) {
}
}
}

public class A implements Runnable {
private String x;
public void run() {
System.out.println(this.x);
/* 逻辑处理执行时间10s     */
}
public A(String x) {
this.x = x;
}
}

回答

本文地址:H5W3 » 【Java】Spring的定时任务<task:scheduled-tasks>问题

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址