이 주제를 많이 연구했지만 유용한 정보를 찾을 수 없습니다. 그리고이 플랫폼에 대한 첫 번째 질문을하기로했습니다. 따라서 특정 기간에 작업을 반복하기 위해 예정된 실행 프로그램을 사용하고 있습니다. 모든 것이 좋습니다. 하지만 오해가 있습니다 .... 내 코드는 작업을 실행하지만 작업이 일정 시간보다 오래 걸리면 작업을 마칠 때까지 기다렸다가 나중에 새 작업을 시작합니다. 일정 시간에 도착하면 작업 실행을 원하고 이전 작업을 마칠 때까지 기다리지 마십시오. 이것을 어떻게 할 수 있습니까? 스윙 프로젝트에서 SwingWorker를 사용했지만이 프로젝트는 스윙 프로젝트가 아닙니다. 읽어 주셔서 감사합니다.ScheduledThreadPoolExecutor 동시 작업
Main 메서드
LogFactory.log(LogFactory.INFO_LEVEL, Config.MODULE_NAME + " - Available processors for Thread Pool: " + AVAILABLE_PROCESSORS);
ScheduledExecutorService executor = Executors.newScheduledThreadPool(AVAILABLE_PROCESSORS);
LogFactory.log(LogFactory.INFO_LEVEL, Config.MODULE_NAME + " - [ScheduledExecutorService] instance created.");
MainWorker task = new MainWorker();
LogFactory.log(LogFactory.INFO_LEVEL, Config.MODULE_NAME + " - [Main worker] created...");
executor.scheduleWithFixedDelay(task, 0, Config.CHECK_INTERVAL, TimeUnit.SECONDS);
홈페이지 노동자
public class MainWorker implements Runnable {
private final NIFIncomingController controller = new NIFIncomingController();
@Override
public void run() {
LogFactory.log(LogFactory.INFO_LEVEL, Config.MODULE_NAME + " - [Task] executed - [" + Thread.currentThread().getName() + "]");
controller.run();
}
}이 동작은 아치 방법이 없습니다 ScheduledExecutorService.scheduleAtFixedDelay()
/**
* Creates and executes a periodic action that becomes enabled first
* after the given initial delay, and subsequently with the
* given delay between the termination of one execution and the
* commencement of the next. If any execution of the task
* encounters an exception, subsequent executions are suppressed.
* Otherwise, the task will only terminate via cancellation or
* termination of the executor.
**/
에 대한 자바 독에 설명되어
누군가 당신을 도울 희망이 있다면 코드를 보여줘야합니다. – Alan
죄송합니다. 잊었습니다.) 예제 코드를 제공했습니다. – user8920693