【问题标题】:Spring Cloud Task - launch task from maven repository in docker containerSpring Cloud Task - 从 docker 容器中的 maven 存储库启动任务
【发布时间】:2018-01-03 12:45:04
【问题描述】:

我学习了 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】:

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

    关注example,了解如何通过 SCDF 的 DSL 编排 3 步。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 2019-03-27
      • 2018-07-31
      • 1970-01-01
      • 2019-10-25
      • 2018-01-27
      相关资源
      最近更新 更多