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

问题描述 投票:0回答:1

我学习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容器调用工件?

spring docker spring-cloud-stream spring-cloud-task
1个回答
1
投票

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

关注这个example如何通过SCDF的DSL精心策划3步骤。

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

© www.soinside.com 2019 - 2024. All rights reserved.