2016-11-12 277 views
3

我打算爲我的項目使用Spring雲流。我看到有內置的觸發源應用程序啓動器。我想要做的就是使用石英作業調度程序作爲源應用程序。這是爲了允許來自應用程序的動態作業計劃。有沒有一個很好的樣本來實現這個目標?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

建立自動創建的端點bean名字的算法是這樣的:

名稱與此算法生成的豆:*本MessageHandlerMessageSource@Bean@Bean上的方法名稱或名稱屬性獲取其自己的標準名稱。這適用於@Bean方法中沒有消息註釋。 * AbstractEndpoint bean名稱使用以下模式生成:[configurationComponentName].[methodName].[decapitalizedAnnotationClassShortName]。例如,上面定義的consoleSource()定義的端點(SourcePollingChannelAdapter)的bean名稱如下:myFlowConfiguration.consoleSource.inboundChannelAdapter

查看Reference Manual瞭解更多信息。

+0

謝謝。這工作。 –

相關問題