2016-11-10 4 views
1

私はSpringスケジューラとJMSを使用していますが、どれがスケジューリングの方が良いでしょうか。Betweeen SpringスケジューラとJMSのどちらを選択するのですか?そしてそれらの違い

@Service 
public class ScheduledProcessor implements Processor { 

    private final AtomicInteger counter = new AtomicInteger(); 

    @Autowired 
    private Worker worker; 

    @Scheduled(fixedDelay = 30000) 
    public void process() { 
     System.out.println("processing next 10 at " + new Date()); 
     for (int i = 0; i < 10; i++) { 
      worker.work(counter.incrementAndGet()); 
     } 
    } 
} 

答えて

0

これらのソリューションは根本的に異なります。

スケジュールされたサービスは、最後の実行からnミリ秒ごとにキックオフされ、利用可能なものを処理します。適時に処理することは保証されておらず、処理するデータの量が増えた場合(および処理に複雑さのレベルがある場合)は拡大縮小できない可能性があります。

私はJMSに傾く傾向があります。最初に、メッセージは、サービスのようにポーリングされるのではなく、リスナーにプッシュされ、入ってきたときに処理されます。第2に、必要に応じて、水平方向と垂直方向の両方向にメッセージを拡大縮小することができます。実際の処理がアプリケーションを圧倒しないように、より多くのノブを使用できます。

基本的な質問は次のとおりです。あなたの要件は何ですか?

関連する問題