2010-01-11 3 views
22

Tomcat을 사용하는 Java 웹 응용 프로그램 (servlets/spring mvc)에서 cron 작업 유형 서비스를 실행할 수 있습니까?웹 응용 프로그램에서 cron 작업을 실행할 수 있습니까?

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

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

특정 시간 또는 15 분마다 실행되는 방법이 보장되는지를 지정하십시오. 그러나 응용 프로그램이 재생되면 재설정 될 수 있습니다 (타이머를 사용하는 경우 .net에있는 방법)

+2

왜 이것이 downvoted인지 잘 모르십니까? +1 – ryber

답변

11

Chapter 23. Scheduling and Thread Pooling에 설명 된대로 Spring은 Timer 및 Quartz Scheduler (http://www.quartz-scheduler.org/)의 통합 클래스를 통해 일정을 지원합니다. 간단한 필요를 위해 JDK Timer을 사용하는 것이 좋습니다.

Java 스케줄러는 보통 비즈니스 지향적 인 작업을 트리거하는 데 사용됩니다. sysadmin 작업 (예를 들어 당신이 준 것처럼)을 위해서는 cron과 전통적인 관리 도구 (bash 등)를 선호해야합니다.

+0

+1 for cron. (15 자) –

0

컨테이너마다 표시됩니다. Quartz을 사용하여 Java에서 수행하거나 Java 스케줄링 동시 사용 (ScheduledExecutorService) 또는 OS 레벨 cron 작업을 사용하여 수행 할 수 있습니다.

15 분마다 극단적으로 보입니다. 일반적으로 나는 더 이상 기록되지 않는 로그 파일을 잘라내거나 삭제할 것을 권장합니다 (일반적으로 밤새 덮어 쓰게됩니다).

+0

cletus, 로그 파일은 단지 예일 뿐이므로 취한 것입니다. ScheduledExecutorService는 고정 된 간격으로 실행 되나요, 아니면 앱 재활용 등에 따라 달라 집니까? – mrblah

0

작업은 일괄 처리됩니다. 수동 트리거 또는 cron 스타일로 (원하는 것처럼).

여전히 webapp와 cron 스타일 작업 사이에 어떤 관계가 없습니까? 내가 생각할 수있는 유일한 webapp 유스 케이스는 당신이 작업을 시작하는 HTTP 종점을 원한다는 것입니다 (그러나 이것은 'cron-style'에 관한 성명서와 반대입니다).

일반적으로 문제 영역 '일괄 처리 작업'을 해결하는 전용 프레임 워크를 사용하십시오. 나는 석영을 추천 할 수있다.

관련 문제