Cloud foundry 无法从spring云数据流启动任务

Cloud foundry 无法从spring云数据流启动任务,cloud-foundry,spring-cloud-dataflow,spring-cloud-task,Cloud Foundry,Spring Cloud Dataflow,Spring Cloud Task,我在SpringCloudDataFlow中注册了我的任务应用程序,为它创建了一个定义,状态显示为“未知”。我创建了流并试图通过任务接收器启动任务,但出现错误: java.lang.IllegalStateException: failed to resolve MavenResource: 如何从任务接收器启动任务?我错过什么了吗?感谢您的帮助。我的另一个问题是如何访问任务中通过TaskLaunchRequest发送的有效负载? S1 http |步骤1:变压器兔子|日志 S2:S1.ste

我在SpringCloudDataFlow中注册了我的任务应用程序,为它创建了一个定义,状态显示为“未知”。我创建了流并试图通过任务接收器启动任务,但出现错误:

java.lang.IllegalStateException: failed to resolve MavenResource:
如何从任务接收器启动任务?我错过什么了吗?感谢您的帮助。我的另一个问题是如何访问任务中通过TaskLaunchRequest发送的有效负载? S1 http |步骤1:变压器兔子|日志 S2:S1.step1>filter--expression=payload.contains('CUSTADDRMODRQ_V15')|任务处理器|任务接收器

任务接收器正在启动TaskLaunchRequest中uri提供的任务。它正在查找日志中显示的资源 对于/home/vcap/.m2/repository,使用优先级为10.0的manager增强本地存储管理器进行输出 使用优先级为5.0的transporter HttpTransporter退出,最终失败

任务部署在我们的存储库中,如前所述,我也注册并创建了它的定义

这是在cf环境中,我使用的是SCDF服务器1.0.0.M4。 在任务接收器的application.properties中,我提供了maven.remote.repositories.snapshots.url=**

任务创建fis ifx事件任务--定义“fis事件任务”

我的目标是从流中启动任务

谢谢你提供的信息。事实上,我正在使用构建快照,因为我无法在1.0.0M4版本中启用taks。下面是我正在使用的spring-cloud-dataflow-server-cloudfoundry-1.0.0.BUILD-20160808.144306-116。我能够注册和创建任务定义。即使在我使用您的团队提供的示例任务模块时,任务定义的状态仍显示为“未知”。但是当我启动流时,当TaskSink尝试启动任务时,它无法找到maven资源。创建任务定义时,是否部署了任务模块?我在Pivotal Apps Manager中未看到任何应用程序。如前所述,我在任务接收器应用程序的application.properties文件中提供了maven.remote.repositories.snapshot.url。我观察到的另一件事是,当我从dataflow shell手动启动任务时,它给出了一个错误CF UnprocessableEntity(10008):请求在语义上无效:未知字段:“staging_disk_in_mb”、“staging_memory_in_mb”以及一条消息“Source is empty”。目前,任务应该打印时间戳,并且不依赖于任何输入

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);
    }
}
SCDF CF服务器的1.0.0.M4版本中不提供任务支持。在此版本中,应禁用任务命令/REST API-请参阅。因此,在1.0.0.M4中,您不会看到任何与任务相关的文档

也就是说,任务支持在构建快照版本中可用/启用。如果您在本地构建CF服务器并将其推送到CF,则可以利用shell中的任务命令来创建和启动任务定义

SCDF CF服务器的1.0.0.M4版本中不提供任务支持。在此版本中,应禁用任务命令/REST API-请参阅。因此,在1.0.0.M4中,您不会看到任何与任务相关的文档


也就是说,任务支持在构建快照版本中可用/启用。如果您在本地构建CF服务器并将其推送到CF,则可以利用shell中的任务命令来创建和启动任务定义

在我开始之前,这里有一些问题。将来,最好将它们分成多个问题,以便其他用户更容易找到,也更容易回答。也就是说:

了解当前情况的一点背景
为了了解事物如何运作,了解事物的当前状态很重要。所涉及软件的当前版本为:

  • Pivotal Cloud Foundry(PCF)-1.7.12。任何任务支持都需要此版本
  • SpringCloudTask(SCT)-1.0.2.0版本
  • Spring云数据流CF(SCDF)-1.0.0.BUILD-SNAPSHOT(截至本文发布之日的当前版本)
目前,PCF 1.7.12+具有运行任务的所有功能。您可以创建v3应用程序(用于启动任务的应用程序类型),将其作为任务运行,等等。但是,围绕该功能的工具目前尚未完成。Apps Manager或CLI中不支持v3应用程序。CLI有一个插件,它更像是一个开发工具,可用于帮助实现某些功能(它将显示日志等),但它功能不全,需要特定版本的CLI才能工作[1]。这是PCF中的任务功能仍然被认为是实验性的原因之一

Spring Cloud Task目前是GA,支持在CF上有效运行任务所需的所有功能。但是,需要注意的是,SCT不处理编排,因此在CF上实际启动任务是用户或Spring Cloud Data Flow(更简单的路线)的责任

SpringCloudDataFlow的CloudFoundry服务器实现目前具有在最新快照中在PCF上启动任务的功能。我们已经根据1.7.12以及1.8的开发分支验证了这一点

SCDF内的任务工作流
任务与SCDF上下文中的流应用程序有着根本的不同。创建流定义时,您可以选择
deploy
it。这实际上是下载Spring Bootüber JAR并将其作为长时间运行的进程部署到PCF。如果它们下降,PCF将按预期重新启动它们,等等

另一方面,未部署任务。它们被发射了。不同之处在于,在创建任务定义时,在单击“启动”之前不会部署任何内容。当任务完成时,软件将关闭并清除
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={}}