2011-08-15 6 views
0

나는 자바 스크립트에서 주로 엑셀 함수로 내보내기 기능을 가진 웹 페이지를 가지고있다.Tomcat 서버에서 X 시간마다 작업을 실행하도록 작업을 예약하려면 어떻게해야합니까?

예를 들어 2 시간마다 해당 서버의 우주 폴더에서 실행하고 저장하려면 해당 기능을 예약 할 수 있습니까?

+1

엑셀이 서버에 저장되어 있습니까? – sternr

+0

@sternr 예. – code511788465541441

+0

가능한 [jsp 웹 응용 프로그램의 배경 타이머 작업] (http://stackoverflow.com/questions/5357033/background-timer-task-in-jsp-web-application) – BalusC

답변

1

(예를 들어 타이머가 작성해야하는 경우 사용자 당 또는 사용자의 요청에 의해 폐기)를 \ 관리하는 것 이미 모든 것을 만들었고 자동화하고 싶다는 생각이 들었습니다. 여기에 아이디어가 있습니다.

  • 2 시간마다 실행되도록 Quartz 작업을 설정하십시오. Example here
  • JVM에서 JavaScript를 실행하려면 Rhino를 사용하십시오. Example here. OTOH, JS 코드를 Java로 변환하고 Rhino없이 네이티브로 실행할 수 있습니다.
  • JS 메서드의 출력을 가져 와서 서버에 저장합니다.

0

클라이언트가 스케줄링을 제어하려는 경우 메타 새로 고침 태그 나 간단한 settimeout js 호출을 사용할 수 있습니다.

서버에서 일정을 제어하려는 경우 서버에서 TimerTask를 만들 수 있습니다.

나는 만의 TimerTask를 만들 것 warpper 클래스를 생성하지만이 이후

1
new Timer().schedule(new TimerTask(){ 
     @Override 
     public void run() 
     { 
     //export Excel here 
     } 
    }, 0, 1000*60*60*2); 
0

함께 할 수있는 간단한 방법은 Timer.scheduleAtFixedRate() 메소드를 사용하는 것입니다 ... 아마 그것을 할 수있는 억달러 다른 방법이 있습니다. 어떤 이유로 든 타사 라이브러리를 가져 오지 않으려는 경우입니다. 그들 중 일부는 꽤 괜찮습니다! 당신이 당신의 TestTimer을 (TestTimer은 TimerTask를 확장)를 정의

Timer timer = new Timer("TEST", true); 
timer.scheduleAtFixedRate(new TestTimer(), INITIAL_DELAY, INTERVAL_PERIOD); 

는 엑셀을 수출하고 처음 불 INTERVAL_PERIOD가 다시 Excel로 내보내기 시도해야하는 시간이해야 할 때 INITIAL_DELAY는 시간입니다. https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html

관련 문제