タスク アプリを Spring Cloud Data Flow に登録し、その定義を作成しましたが、ステータスが「不明」と表示されます。ストリームを作成し、タスク シンクからタスクを起動しようとすると、エラーが発生します。
java.lang.IllegalStateException: failed to resolve MavenResource:
タスクシンクからタスクを起動するには? 何か不足していますか?どんな助けでも大歓迎です。もう 1 つの質問は、自分のタスクで TaskLaunchRequest を介して送信されたペイロードにアクセスする方法です。S1 http | step1: トランスウサギ | ログ S2 :S1.step1 > フィルター --expression=payload.contains('CUSTADDRMODRQ_V15') | タスクプロセッサ | タスクシンク
task-sink は、TaskLaunchRequest の uri によって提供されたタスクを起動しています。ログに示されているようにリソースを探しています OUT /home/vcap/.m2/repository に優先度 10.0 のマネージャー EnhancedLocalRepositoryManager を使用します https://repo.spring.io/libs-snapshotに優先度 5.0 のトランスポーター HttpTransporter を使用しますついに失敗。
タスクはリポジトリにデプロイされ、前述のように、その定義も登録して作成しました。
これはcf環境にあり、SCDFサーバー1.0.0.M4を使用しています。task-sink の application.properties で、maven.remote.repositories.snapshots.url=** を提供しています
task create fis-ifx-event-task --definition "fis-event-task"
私の目標は、ストリームからタスクを起動することです。
情報のおかげで。1.0.0M4 バージョンではタスクを有効にできないため、実際には BUILD-SNAPSHOT を使用しています。これは、私が spring-cloud-dataflow-server-cloudfoundry-1.0.0.BUILD-20160808.144306-116 を使用しているものです。タスク定義を登録および作成できます。チームから提供されたサンプル タスク モジュールを使用している場合でも、タスク定義のステータスが「不明」と表示されます。しかし、ストリームのフローを開始し、タスク シンクがタスクを起動しようとすると、Maven リソースが見つかりません。タスク定義を作成すると、タスク モジュールはデプロイされますか? Pivotal Apps Manager にアプリが表示されません。前述のように、タスク シンク アプリケーションの application.properties ファイルに maven.remote.repositories.snapshot.url を指定しました。私が観察したもう 1 つのことは、データフロー シェルから手動でタスクを起動すると、CF-UnprocessableEntity(10008): The request is semanically invalid: Unknown field(s): 'staging_disk_in_mb', 'staging_memory_in_mb' というエラーが表示されることです。ソースが空です。現在、タスクはタイムスタンプを出力することになっており、入力に依存していません。
TaskProcessor code:
@EnableBinding(Processor.class)
@EnableConfigurationProperties(TaskProcessorProperties.class)
public class TaskProcessor {
@Autowired
private TaskProcessorProperties processorProperties;
public TaskProcessor() {
}
@Transformer(inputChannel = Processor.INPUT, outputChannel = Processor.OUTPUT)
@ELI(level = "info", eventType = ELIEventType.INBOUND)
public Object setupRequest(String message) {
Map<String, String> properties = new HashMap<String, String>();
properties.put("payload", message);
TaskLaunchRequest request = new TaskLaunchRequest(processorProperties.getUri(), null, properties, null);
return new GenericMessage<>(request);
}
}
TaskSink code:
@SpringBootApplication
@EnableTaskLauncher
@EnableBinding(Sink.class)
@EnableConfigurationProperties(TaskSinkProperties.class)
public class FisIfxEventTaskSinkApplication {
public static void main(String[] args) {
SpringApplication.run(FisIfxEventTaskSinkApplication.class, args);
}
}
投稿の前半で使用しているストリームを提供しました。ここでわかるように、シンクは uri とペイロードを含む TaskLaunchRequest を受信しており、タスクを起動できません。
OUT registering [40, java.io.File] with serializer org.springframework.integration.codec.kryo.FileSerializer
2016-08-10T16:08:55.02-0600 [APP/0]
OUT Launching Task for the following resource TaskLaunchRequest{uri='maven://com.xxx:fis.ifx.event-task:jar:1.0-SNAPSHOT', commandlineArguments=[], environmentProperties={payload={"statusCode":0,"fisT
opic":"CustomerDataUpdated","payloadId":"CUSTADDRMODR``Q_V15","customerIds":[1597304]}}, deploymentProperties={}}