문제

Tomcat을 사용하여 Java 웹 응용 프로그램 (Servlets/Spring MVC)에서 CRON 작업 유형 서비스를 실행할 수 있습니까?

예를 들어 15 분마다 로그 데이터베이스를 제거하십시오.

컨테이너 독립적 인 방식 으로이 작업을 수행 할 수 있습니까? 아니면 Tomcat 또는 다른 컨테이너를 사용하여 실행해야합니까?

메소드가 특정 시간에 실행되거나 15 분마다 실행되는 방법이 보장되는지 지정하지만 응용 프로그램이 재활용되는 경우 (타이머를 사용하는 경우 .NET에있는 방법).

도움이 되었습니까?

해결책

문서화 된대로 23 장. 스케줄링 및 스레드 풀링, Spring은 Timer 및 석영 스케줄러 (http://www.quartz-scheduler.org/). 간단한 요구에 대해서는 JDK와 함께 가도록 권장합니다. Timer.

자바 스케줄러는 일반적으로 Java를 트리거하는 데 사용됩니다. 비즈니스 지향적 인 직업. Sysadmin 작업의 경우 (예 : 예 :) Cron 및 기존 관리 도구 (Bash 등)를 선호해야합니다.

다른 팁

스프링을 사용하는 경우 내장 석영 또는 타이머 후크를 사용할 수 있습니다. 보다 http://static.springsource.org/spring/docs/2.5.x/reference/scheduling.html

컨테이너 별이 될 것입니다. 당신은 Java와 함께 할 수 있습니다 석영 또는 Java의 일정 동시 유도를 사용하는 것 (ScheduledExecutorService) 또는 OS 레벨 CRON 작업으로.

15 분마다 극단적 인 것 같습니다. 일반적으로 나는 또한 더 이상 기록되지 않은 로그 파일을 자르거나 삭제하는 것이 좋습니다 (그리고 일반적으로 밤새 롤링됩니다).

작업은 배치 지향적입니다. 수동 트리거 또는 크론 스타일로 (원하는대로).

그래도 나는 웹 app와 cron 스타일의 직업 사이의 관계를 얻지 못합니까? 내가 생각할 수있는 유일한 WebApp 사용 사례는 작업을 트리거하기 위해 HTTP 엔드 포인트를 갖기를 원한다는 것입니다 (그러나 이것은 'Cron 스타일'에 대한 귀하의 진술에 반대합니다).

일반적으로 전용 프레임 워크를 사용하는데,이 프레임 워크. 석영을 추천 할 수 있습니다.

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