【发布时间】:2010-05-26 07:53:12
【问题描述】:
我使用 Spring 框架和 oracle weblogic 10.3 作为容器。 我使用workmanager 来管理我的线程,我已经创建了一个由workmanager 管理的线程。幸运的是spring提供了使用workmanager的委托类,所以我只需要把它放在applicationContext.xml中。
但是,当我将“while”和 TimeUnit 置于所需的延迟时间时,部署过程从未完成。部署过程似乎永远不会跳出while循环来完成部署。
为什么?,据我所知,使用典型线程,没有这样的问题。我是否应该使用另一种策略使其始终循环和延迟。
import java.util.concurrent.TimeUnit;
import org.springframework.core.task.TaskExecutor;
public class TaskExecutorSample{
Boolean shutdown = Boolean.FALSE;
int delay = 8000;
TimeUnit unit = TimeUnit.SECONDS;
private class MessageGenerator implements Runnable {
private String message;
public MessageGenerator(String message){
this.message = message;
}
@Override
public void run() {
System.out.println(message);
}
}
private TaskExecutor taskExecutor;
public TaskExecutorSample(TaskExecutor taskExecutor){
this.taskExecutor = taskExecutor;
try {
while (shutdown.equals(Boolean.FALSE)){
this.printMessage();
unit.sleep(delay);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void printMessage() {
taskExecutor.execute(new MessageGenerator("Print this Messages"));
}
}
真的提前谢谢你。 问候,
卡利尔
【问题讨论】:
标签: java oracle spring weblogic