5

ServiceActivator メソッドを持つ Component クラスがあります。

@Component("payloadService")
public class PayloadService {

    @Transactional
    @ServiceActivator
    @Description("Pre-check service")
    public Message<String> preCheck(Message<String> message) {
        ...
    }
}

ServiceActivator の preCheck メソッドを次のように呼び出す Spring Integration 4 Java DSL フローがあります。

IntegrationFlows.from("input.ch")
    .handle("payloadService", "preCheck")
    ...
    .get();

私は現在、サービス呼び出しに再試行のアドバイスを追加しようとしています (ここに示されているようにhttp://docs.spring.io/spring-integration/reference/htmlsingle/#retry-config ) が、Java DSL 形式でこれを行いたいと考えていますhttps://github.com/spring-projects/spring-integration-extensions/wiki/Spring-Integration-Java-DSL-Reference#dsl-and-endpoint-configurationに記載されているとおり。

しかし、このアドバイスを実際に DSL 形式のフローに適用する方法がよくわかりません。ラムダなどにまだ慣れていないため、おそらく苦労しています。

誰かがこれを行う方法についていくつかの指針を教えてもらえますか?

前もってありがとう、PM

4

1 に答える 1

11

このような:

....

IntegrationFlows.from("input.ch")
    .handle("payloadService", "preCheck", e -> e.advice(retryAdvice()))
    ...
    .get();

....

@Bean
public Advice retryAdvice() {
   RequestHandlerRetryAdvice advice = new RequestHandlerRetryAdvice();
   ...
   return advice;
}

反対側から、Spring Retry プロジェクトの新しいアノテーションを試すことができます。

@Configuration
@EnableIntegration
@EnableRetry
....

@Transactional
@ServiceActivator
@Retryable
@Description("Pre-check service")
public Message<String> preCheck(Message<String> message) {
于 2014-08-05T11:18:34.680 に答える