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