Я использовал Spring Framework и Oracle Weblogic 10.3 в качестве контейнера.
Я использовал workmanager для управления своим потоком, я уже создал один поток, которым управляет workmanager. К счастью, весна предоставляет класс делегирования для использования 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"));
}
}
Действительно, заранее спасибо.
С уважением,
Халиль