0
EJB에서 몇 초마다 실행되도록 ScheduledExecutorService를 사용하려고합니다. 그러나, 그것은 작동하는 것 같습니다. 내가 잘못된 일을하고 있는지 확실하지 않습니다. 이 웹 사이트는 http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html입니다.ScheduledExecutorService가 몇 초마다 실행되도록
몇 초마다 코드를 실행하고 싶습니다. 내가 반복적으로 실행되는 하나의 스레드에서만 실행되기 때문에 이것이 동시성인지 여부는 확실하지 않습니다. 아래는 코드입니다.
@Startup
@Singleton
public class StartUp {
private ScheduledExecutorService executor;
@PostConstruct
public void start() {
executor = Executors.newScheduledThreadPool(1);
Runnable runnable = new Runnable() {
public void run() {
while(true) {
System.out.println("i");
// after send an e-mail
}
}
};
ScheduledFuture<?> scheduledFuture = executor.scheduleAtFixedRate(runnable, 0, 1, TimeUnit.SECONDS);
}
}
이것은 실행되지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
아이디어가 있으십니까?
수백만 초 ('new Date(). getTime()')의 초기 지연을 구성한 다음 실행을 취소하기 전에 작업을 취소하려고합니다. –
작업을 즉시 시작한 다음 1 초마다 repedately 실행하고 싶습니다. 취소 방법을 꺼내겠습니다. 새로운 Date(). getTime() 대신에 무엇을 추가해야합니까? – user3189663
'executor.scheduleAtFixedRate (실행 가능, 0, 1, TimeUnit.SECONDS); ' –