2016-11-12 2 views
3

내 프로젝트에 Spring Cloud Stream을 사용할 계획이다. Trigger source application starter가 내장되어 있습니다. 내가하고 싶은 일은 쿼츠 작업 스케줄러를 소스 앱으로 사용하는 것이다. 이것은 응용 프로그램에서 동적 작업 일정을 허용하는 것입니다. 이것을 달성하기위한 좋은 표본이 있습니까?Spring Cloud Stream + Quartz

찾았습니다. spring integration + cron + quartz in cluster?. 이 솔루션은 인바운드 채널 어댑터에 대한 참조를 얻는 방법에 대해 설명합니다. Annotation을 사용하여 인바운드 채널 어댑터를 정의합니다. 솔루션에서 언급 된 시작/중지를 할 수 있도록이 객체에 대한 참조를 어떻게 얻을 수 있습니까?

이것은 인바운드 채널 어댑터를 정의하는 방법입니다.

@Bean 
@InboundChannelAdapter(autoStartup = "false", value = SourceChannel.CHANNEL_NAME, poller = @Poller(trigger = "fireOnceTrigger")) 
public MessageSource<String> timerMessageSource() { 
    return new MessageSource<String>() { 
     public Message<String> receive() { 
      System.out.println("******************"); 
      System.out.println("At the Source"); 
      System.out.println("******************"); 
      String value = "{\"value\":\"hi\"}"; 
      System.out.println("Sending value: " + value); 
      return MessageBuilder.withPayload(value).setHeader(MessageHeaders.CONTENT_TYPE, "application/json").build(); 
     } 
    }; 
} 

답변

1

GitHub의에 관련 문제 : https://github.com/spring-projects/spring-integration-java-dsl/issues/138

자동으로 생성 엔드 포인트 빈 이름을 구축하는 알고리즘과 같은 것입니다 :

이름이 알고리즘으로 생성 된 콩 : ● MessageHandler (MessageSource) @Bean@Bean의 메서드 이름 또는 이름 특성에서 자체 표준 이름을 가져옵니다. 이것은 @Bean 메쏘드에 메시징 어노테이션이없는 것처럼 작동합니다. * AbstractEndpoint 빈 이름은 [configurationComponentName].[methodName].[decapitalizedAnnotationClassShortName] 패턴으로 생성됩니다. 예를 들어 위의 consoleSource() 정의에 대한 끝점 (SourcePollingChannelAdapter)은 myFlowConfiguration.consoleSource.inboundChannelAdapter과 같은 bean 이름을 가져옵니다.

자세한 내용은 Reference Manual을 참조하십시오.

+0

감사합니다. 이 작동합니다. –

관련 문제