0
我使用Spring框架和oracle weblogic 10.3作为容器。 我用workmanager来管理我的线程,我已经做了一个由workmanager管理的线程。幸运的是,spring提供了使用workmanager的委托类,所以我只需要将它放在applicationContext.xml上。使用thread.sleep或延迟的工作管理器不起作用
但是当我把“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"));
}
}
真的在此先感谢。 问候,
卡利尔
对不起,实际上我已经设置了延迟时间只有10秒,它也不起作用,这个过程总是每10秒循环一次,但发布状态永远不会结束。上面的代码是我最后一次修改,我放慢了寻求另一种可能性的延迟。 – 2010-05-26 09:24:43
什么是完全荒谬的错位,你是对的!,我已经把它运行(),它运作良好。 – 2010-05-27 09:27:02