2011-08-15 4 views
0

私はjavascriptのウェブページを主に持っていますが、excel機能へのエクスポートがあります。tomcatサーバーでX時間ごとに実行するようにタスクをスケジュールするにはどうすればよいですか?

たとえば、2時間ごとにそのサーバー上のスペースフォルダにその機能を実行して保存するにはどうすればよいですか?

+1

Excelはサーバーに保存されていますか? – sternr

+0

@sternrはい、それは – code511788465541441

+0

の可能性があります[Jsp Webアプリケーションの背景タイマータスク]の複製(http://stackoverflow.com/questions/5357033/background-timer-task-in-jsp-web-application) – BalusC

答えて

1

をwarpperクラスを作成したいですすでにすべてをビルドしていて、それを自動化したいと思っているとしたら、ここにアイディアがあります:

  • 2時間ごとに実行するようにQuartzジョブを設定します。 Example here
  • JavaScriptをJVM内で実行するためにRhinoを使用します。 Example here。 OTOH、JSコードをJavaに翻訳し、Rhinoなしでネイティブに実行することができます。
  • JSメソッドの出力を取得し、サーバーに保存します。

0

スケジューリングをクライアントが制御する場合は、メタリフレッシュタグを使用するか、単純なsettimeout js呼び出しを使用することができます。

スケジューリングをサーバー上で制御する場合は、サーバー上でTimerTaskを作成できます。

(例えばタイマーは、ユーザーごとに作成しなければならないか、ユーザーの要求により処分する場合)私はインクルードはTimerTaskをを作成しますが、それら\それを管理しまうだけでなく、この以来

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); 

は、Excelをエクスポートするには、それが最初の火災とINTERVAL_PERIODは、それが再びExcelにエクスポートしようとしなければならない時間がある必要があるときINITIAL_DELAYは時間です。 https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html

関連する問題