Spring Cloud Task - 从 docker 容器中的 Maven 存储库启动任务
Spring Cloud Task - launch task from maven repository in docker container
我学习 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 容器调用工件?
如果您打算从上游事件启动任务应用程序(例如,新文件事件;新数据库记录事件;Rabbit 事件中的新消息等),您只需使用相应的 out-of-the-box applications,然后通过任务启动器启动任务。
按照此 example 了解如何通过 SCDF 的 DSL 协调 3 个步骤。
也许您可以考虑重用现有的应用程序而不是重新发明它们,除非您有完全不同的要求并且这些应用程序无法满足它。我建议您在考虑扩展行为之前尝试让上面提到的示例在本地工作。
我学习 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 容器调用工件?
如果您打算从上游事件启动任务应用程序(例如,新文件事件;新数据库记录事件;Rabbit 事件中的新消息等),您只需使用相应的 out-of-the-box applications,然后通过任务启动器启动任务。
按照此 example 了解如何通过 SCDF 的 DSL 协调 3 个步骤。
也许您可以考虑重用现有的应用程序而不是重新发明它们,除非您有完全不同的要求并且这些应用程序无法满足它。我建议您在考虑扩展行为之前尝试让上面提到的示例在本地工作。