Я изучаю 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);
}
}
И, как вы можете видеть, я вызываю свой встроенный артефакт, указав URL-адрес maven, но мне интересно, как я могу вызвать артефакт из другого контейнера докеров?