Я хотел бы создать в моей программе 2 процедуры, выполняемые параллельно. В настоящее время я использую верблюжий поток для обработки файлов, и он работает, но в то же время я хотел бы запустить свою программу, которая потребляет сообщения kafka. 2 работают независимо, но не параллельно. вот мой код:
FileRouteBuilder:
@Component
public class FileRouteBuilder extends SpringRouteBuilder {
private KafkaListener KafkaListener;
private WorkflowEventConsumerRoute workflowEventConsumerRoute;
private CamelContext camelContext;
@Autowired
public FileRouteBuilder(final KafkaListener KafkaListener,CamelContext camelContext) {
this.KafkaListener = KafkaListener;
this.camelContext=camelContext;
ExecutorService exec = Executors.newFixedThreadPool(25);
exec.execute(new Runnable() {
@Override
public void run() {
while(true){
KafkaListener.processMessage();
}
}
});
exec.shutdown();
}
@Override
public void configure() throws Exception {
//while(true){
final String filePathIn = "/location"
final String schemaPath = "**.xsd";
final DataFormat jacksonDataFormat = new JacksonXMLDataFormat(RequestDto.class);
from("file:" ******)
// process ok
.end();
//}
}
}
KafkaListener:
@Component
public class KafkaListener /*implements Runnable */{
@Value("${kafka.topic}")
private transient String topic;
@Autowired
@Qualifier("consumerConfig")
private transient Properties kafkaConfig;
KafkaConsumer<Long, GenericRecord> consumer;
public void processMessage() {
LOGGER.debug("---------- Process consumer-----------");
consumer = new KafkaConsumer<>(kafkaConfig);
consumer.subscribe(Collections.singletonList(topic));
while (true) {
//process
}
}
}
Я пытался создать 2 из (), затем 2 верблюжьих маршрута, но безуспешно. ты можешь мне помочь?