Apache Kafka czekanie na odpowiedź.

0

Zastanawiam się w jaki sposób powinienem zaimplementować metodę , którą mam nadzieję w miarę jasno opisałem... mniej więcej tak to wygląda :)

 public void createProduct(int howManyProducts) {

        if (!isEnoughInStorage().test(MATERIALS)) { //sprawdzenie warunku
            orderProducer.accept("Not enough MATERIALS");
            // jezeli brakuje ten producer wysyła na Kafke info. 
            //I w tym momencie chciałbym przeczekać dopoki inny serwis nie wysle na Kafke potrzebnych materiałów
            // i ponownie chciałbym sprawdzić warunek. Problem polega na tym, że dopóki nie wyjdę z tej metody drugi serwis 
            // nie wyśle mi wiadomości. 
        } else {
            createNewProducts(howManyProducts);
        }

    }
3

I w tym momencie chciałbym przeczekać dopoki inny serwis nie wysle na Kafke potrzebnych materiałów

To się zupełnie mija z ideą asynchronicznych eventów. Wychodzisz z tej metody i event handler za jakiś czas złapie sytuacje że coś się pojawiło.

Jeśli chcesz robić coś takiego jak opisałeś to wywal kafkę i klep zwykłe synchroniczne komunikaty.

0

Ok jasne. Ale czy dobrym rozwiązaniem będzie jeżeli w metodzie event handlera po złapaniu tego że coś się pojawiło wywołam raz jeszcze metodę createProduct ?

0

Nie rozumiem pytania, Event handler obsługuje eventy. Jeśli akcją dla eventu że coś się pojawiło jest utworzenie nowego produktu, to chyba oczywiste że taką akcję należy podjąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1