2011-11-15 2 views
0

私は特定の時間帯に特定のユーザーのために電子メールで送信する必要があるデータベース内の特定の情報を持っているとします。Grailsがルーチンを作成する

a)Grailsでルーチンを作成するにはどうしたらいいですか?基本的には常に実行中のアクションです。たとえば、1時間ごとにアクションが実行されているとします。

私はこのような何かを考えていた:

while(true){ 

... 
myCodeHere 
... 
wait 30minutes 
} 

これは実際に動作しますか?過度の処理なしで?そして、どうすれば何があっても、永久に実行されるアクションを持つことができます。私はこれを行うための具体的な方法がありますか? ありがとうございました RR

答えて

0

とプラグインあなたは

1純粋な春のフレームワークを使用することができます)を容器に

<task:annotation-driven executor="executor" scheduler="scheduler"/> 
<task:executor id="executor" pool-size="5"/> 
<task:scheduler id="scheduler" pool-size="10"/> 

を追加します(タスクとTXの名前空間を定義することを忘れないでください)

2)いくつかのBeanを作成します。メソッドを追加する

@Scheduled(fixedDelay=4000) 
public void method() { 
    // do something every 4 seconds 
} 

フィニッシュ! 詳細については、spring framework

をご覧ください。
3

grailsアプリでこれを行う通常の方法はQuartz scheduler pluginです。このプラグインは、ジョブをスケジューリングするためのシンプルなcronのようなDSLを提供します。例えば、30分ごとにジョブを実行するために、あなたはこのようにそれを設定できます。

class MyJob { 
    static cronExpression = "0 0/30 * * * ?" 

    def execute(){ /* do something useful */ } 
} 

を使用すると、バックグラウンドスレッドのすべての時間を実行したい場合は、ExecutorServiceが適切に包ま提供するexecutor pluginを見てみましょう休止状態のセッションを取得します。石英を回避

関連する問題