문제

응용 프로그램이 처음 실행되는시기 또는 실행 기간에 관계없이 매일 오후 3시에 메소드를 실행하는 효과적인 방법을 찾고 있습니다.

이것은 OS 개입이없는 응용 프로그램에서 전적으로 수행해야합니다 (예 : Windows 작업 스케줄러).

나는 java.util.timer를 실험 해왔다.

모든 도움이 감사하겠습니다.

감사.

도움이 되었습니까?

해결책

당신은 살펴 봐야합니다 석영 이는 Java 기반 작업 일정 시스템입니다.

다른 팁

당신은 아마도와 같은 것을 사용하고 싶을 것입니다 석영 엔진 누락 된 작업과 같은 작업을 수행 할 수 있습니다 ( ahem 충돌) 그리고 그것은 스레드를 관리하려고 시도하는 작업을 벗어납니다.

예를 들어 실을 사용하여 잠을 자고 86400 초 (1 일) 나중에 깨어나면 하루가 늦어지고 시간이 늦어 지거나 하루가 일찍 (Day = 90000 초) 하루에 잠기고 시간이 지남에 따라 잠기고 시간이 늦어집니다. 선택한 솔루션에주의하십시오

내장 JDK 방식은 다른 사람들이 제안한 것을 수행하고 먼저 계산하는 것입니다.

  • 현재 - 원하는 시간

그런 다음 같은 것을 사용할 수 있습니다 일정 유언 집행자 작업을 제출하고 특정 지연으로 실행합니다. 이것은 프레임 워크와 같은 옵션보다 훨씬 간단합니다. 석영, 그러나 외부 의존성이 필요하지 않습니다.

또한 사용중인 JDK를 항상 나열해야하므로 사람들은 JDK 버전에 대한 솔루션을 제공 할 수 있습니다.

다음 오후 3시와의 차이를 계산하는 스레드를 시작하고 그 시간 동안 잠을 잘 수 있습니다. 그것이 깨어날 때 그것은 방법을 실행하고 다시 계산하고 잠을 자고 있습니다. 이것이 당신이 의미하는 바입니까?

다른 사람들이 언급 한 바와 같이 쿼츠는 선택입니다. http://www.ibm.com/developerworks/java/library/j-quartz/index.html

Jcrontab

Jcrontab은 Java로 작성된 스케줄러입니다. 프로젝트 목표는 Java 프로젝트를위한 완벽한 기능 일정을 제공하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top