Spring Cloud Task - 从docker容器中的maven存储库启动任务

时间:2018-01-03 12:45:05

标签: spring docker spring-cloud-stream spring-cloud-task

我学习Spring Cloud Task,编写简单的应用程序,分为3个服务。第一个是TaskApplication,只有main()并且实现CommandLineRunner,第二个是TaskIntakeApplication,它接收请求并将它们发送到RabbitMQ,第三个服务是TaskLauncherApplication从RabbitMQ接收消息并使用接收的参数运行任务。

@Component
@EnableBinding(Source.class)
public class TaskProcessor {

    @Autowired
    private Source source;

    public void publishRequest(String arguments) {
        final String url = "maven://groupId:artifatcId:jar:version";
        final List<String> args = Arrays.asList(arguments.split(","));
        final TaskLaunchRequest request = new TaskLaunchRequest(url, args, null, null, "TaskApplication");
        final GenericMessage<TaskLaunchRequest> message = new GenericMessage<>(request);
        source.output().send(message);
    }
}

正如你所看到的那样,我通过提供maven url来调用我的构建工件,但我想知道如何从另一个docker容器调用工件?

1 个答案:

答案 0 :(得分:1)

如果您打算从上游事件启动任务应用程序(例如,新的文件事件;新的DB记录事件; Rabbit事件中的新消息等),,您和# 39; d只需使用相应的out-of-the-box applications,然后通过任务启动器启动任务。

按照example关于如何通过SCDF的DSL精心策划3步骤。

也许您可以考虑重复使用现有应用,而不是重新发明它们,除非您有完全不同的要求并且这些应用无法满足要求。在你考虑扩展行为之前,我建议尝试让上面提到的例子在本地工作。