1

私はSpringクラウドの学習タスクとSCDFの新機能ですので、これを尋ねます。イベントに基づいてSpringクラウドタスクをメッセージソース(RabbitMQ、Kafka)に実行する

私はイベントに基づいて、私のSCTを実行するためにワンド(たとえば、メッセージがラビットMQに掲載された)、私はそれは2つの方法で行うことができると思うのです:

  1. はソースをポーリングメッセージを作成します。 RabbitMQからデータをストリームに送信し、ストリームからデータを読み込むシンクを作成し、データがシンクになるとすぐに(ソースストリームから)タスクが起動されます。

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

    これが可能かどうかわかりませんか?

  2. 他の方法では、タスクランチャーを使用することができます。ここで、タスクランチャはストリームで設定され、リスナはrabbitMQからのポーリングメッセージになります。メッセージが受信されると、トリガがプロセスを開始し、タスク・ランチャがタスクを起動します。しかし、ここで私はどのように私の仕事にメッセージのデータを取得するか分からない? TaskLaunchRequestにデータを追加する必要がありますか?上流のイベントでタスクを起動

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

'streamcousumer'にタイプミスがありますか?もしそうなら、編集してください - ありがとうございます。 – halfer

答えて

1

はすでにサポートされており、それにはいくつかの方法があるさ - 詳細はreference guideとサンプル)を確認してください。

+0

アナンダンありがとうございました。しかし、私がストリームを展開するとき、私はそれが展開されていないと見ています。ここに私がしたステップがあります。 1.アプリケーションレジスタ - 名前トリガタスク - タイプソース - 理メイプル://org。springframework.cloud.task.app:timestamp-task:jar:1.0.1.RELEASE 2.アプリケーション・レジスタ--nameタスク・ランチャ - ローカル - タイプ・シンク - リュー・メイプル://org.springframework.cloud.stream。 app:task-launcher-local-sink-kafka:jar:1.0.0.BUILD-SNAPSHOT 3.ストリーム作成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:シャットダウン osctatTimestampTaskApplicationの登録解除JMX-暴露豆: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データベースと私のSCDFを開始しました。

    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" 
    
関連する問題