1

私はSpringクラウドタスクとSCDFの学習が初めてなので、これを尋ねます。

イベントに基づいて SCT を実行したい (メッセージが Rabbit 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"
    
4

2 に答える 2

0

これが私の質問の答えに関する完全な説明です。ここで、Sabby は私の問題を解決するために大いに助けてくれました。

問題: tasklauncher/task-sink を使用してタスクをトリガーできませんでした。ログでも正しい詳細が得られず、ログレベルを正しく設定する方法さえ知りませんでした。

解決策: Sabby と SCT サイトで提供されているドキュメントの助けを借りて、これを解決し、POC 作業を進めることができました。以下は、私が行った詳細な手順です。

  1. プロパティファイルを参照し、ログレベルの変更を次のように設定して、postgresqlデータベースでSCDFを開始しました

    --logging.level.org.springframework.cloud=DEBUG
    --spring.config.location=file://scdf.properties
    
  2. bitly からインポートされたアプリ。

    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"
    
于 2016-09-23T17:47:34.880 に答える