1

我是學習Spring雲任務和SCDF的新手,所以這麼問。將基於事件的春季雲任務執行到消息源(即RabbitMQ,Kafka)

我的魔杖基於事件(比如一個消息發佈到兔MQ)來執行我的SCT,所以我認爲這可以通過兩種方式來完成:

  1. 創建一個來源,調查消息來自RabbitMQ並將數據發送到數據流,現在創建一個從數據流中讀取數據的接收器,並且一旦數據流入(從源數據流),任務將啓動。

    create steam producer --definition "rabbitproducer | streamconsumer (This is @TaskEnabled)" 
    

    不確定這是否可能?

  2. 其他方式可以使用任務啓動器。這裏任務啓動器將配置一個流,一個監聽器將從rabbitMQ輪詢消息。所以當接收到消息時,觸發器將啓動該過程,tasklauncher將啓動該任務。但在這裏不知道如何將消息數據導入我的任務?我必須將數據添加到TaskLaunchRequest中嗎?

    create stream mystream --definition "rabbitmsgtrigger --uri:my task | joblauncher" 
    
+0

你在'streamcousumer'中有錯字嗎?如果是這樣,請編輯更正 - 謝謝。 – halfer

回答

1

由上游事件發射任務已支持並有幾種方法吧 - 請查看reference guide和樣品)瞭解更多詳情。

+0

非常感謝Anandan。但是當我部署流時,我發現它沒有部署。以下是我所做的步驟。 1. app register --name triggertask --type source --uri maven:// org。springframework.cloud.task.app:timestamp-task:jar:1.0.1.RELEASE 2.應用註冊 - 名稱任務啓動程序本地 - 類型接收器--uri maven://org.springframework.cloud.stream。 app:task-launcher-local-sink-kafka:jar:1.0.0.BUILD-SNAPSHOT 3. stream create mytasklaunchertest --definition「triggertask --triggertask.uri = file:///scdf-task2-helloworld-0.0 .1-SNAPSHOT.jar --trigger.fixed-delay = 5 | task-launcher-local「--deploy –

+0

在這裏,我看到運行時狀態是未知的,有時我看到tasklauncher應用程序已部署,但triggertask從未部署,因此流也是未部署。 –

+0

以下是日誌:osctatTimestampTaskApplication:在PID 6860 intintdev07上啓動TimestampTaskApplication v1.0.0.BUILD-SNAPSHOT(/path/timestamp-task-1.0.0.BUILD-SNAPSHOT.jar由/ path/foo-1474374281890中的sid1adm啓動/foo.triggertask) scaAnnotationConfigApplicationContext:關閉org.spring[email protected]1f088fd4:啓動日期 osjeaAnnotationMBeanExporter:在關機註銷JMX暴露豆 osctatTimestampTaskApplication:在3.189秒 –

0

下面是關於我的問題答案的完整說明。在這裏,Sabby幫我解決了我的問題。

問題:我無法使用tasklauncher/task-sink觸發我的任務。在日誌中,我還沒有得到正確的細節,我甚至不知道如何設置正確設置日誌級別。

解決方案:在Sabby和SCT網站上提供的文檔的幫助下,我可以解決這個問題,並在我的POC工作中繼續前進。以下是我所做的詳細步驟。

  1. 通過參考屬性文件,並從bitly設置日誌級別變化

    --logging.level.org.springframework.cloud=DEBUG 
    --spring.config.location=file://scdf.properties 
    
  2. 進口的應用程序開始了我與PostgreSQL數據庫民防部隊。

    app import --uri [stream applications link][1] 
    
  3. 註冊任務水槽應用

    app register --name task-sink --type sink --uri file://tasksink-1.1.0.BUILD-SNAPSHOT.jar 
    
  4. 創建流爲:

    stream create mytasklaunchertest --definition "triggertask --triggertask.uri=https://my-archiva/myproject-scdf-task1/0.0.1-SNAPSHOT/myproject-scdf-task1-0.0.1-20160916.143611-1.jar --trigger.fixed-delay=5 | task-sink" 
    
  5. 部署流:

    stream deploy foo --properties "app.triggertask.spring.rabbitmq.host=host,app.triggertask.spring.rabbitmq.username=user,app.triggertask.spring.rabbitmq.password=pass,app.triggertask.spring.rabbitmq.port=5672,app.triggertask.spring.rabbitmq.virtual-host=xxx"