2016-05-30 9 views
0

Ich habe eine Situation, die ich kommunizieren muss mit Eureka Client mit externen API kurz nach Spring Boot-Web-Anwendung und vor JPA Start Datenbankschema erstellen und Daten aus der SQL-Datei einfügen.Eureka Client und Spring ORM

das Problem ist Heureka-Client bei smartlifecycle Phase 0, die Registrierung zu Heureka-Server starten, das bedeutet nach dem Anwendungskontext seine Arbeit und JPA bereits gearbeitet und fertig gestartet wurde.

also wie verhindert man, dass jpa beginnt zu arbeiten oder seine Arbeit zu Phase 1 zum Beispiel zu verzögern?

+1

Ein Beispielprojekt wirklich uns genauer zu verstehen Ihr Problem helfen würde. –

+0

Warum? Warum müssen Sie kommunizieren, bevor der Dienst gestartet wurde? Was ist so wichtig, dass Sie tun müssen? Denken Sie auch daran, dass Service-Registrierung und Suche unterschiedliche Dinge sind! –

+0

@ M.Deinum: Eureka-Client kommunizieren/sonstige Dienstleistungen apis konsultiert, wenn Apis true zurückgegeben, wird die Anwendung ausgeführt werden und das Schema erstellen und die Daten einfügen, wenn false zurück, wird eine Ausnahme ausgelöst werden, und die Anwendung wird nicht ausgeführt. Dies ist das Szenario, also haben Sie eine Lösung dafür? – AdrY

Antwort

0

Ich war mit dem gleichen Problem konfrontiert, dann fand ich diese SO question.

Im Grunde müssen Sie nur Ihre Kommunikationslogik in start() setzen.

public class EurekaClientService implements SmartLifecycle { 

    @Autowired 
    private EurekaClient eurekaClient; 

    private volatile boolean isRunning = false; 

    @Override 
    public boolean isAutoStartup() { 
     return true; 
    } 

    @Override 
    public void stop(Runnable r) { 
     isRunning = false; 
    } 

    @Override 
    public void start() { 
     eurekaClient.customService(); 
     isRunning = true; 
    } 

    @Override 
    public void stop() { 
     isRunning = false; 
    } 

    @Override 
    public boolean isRunning() { 
     return isRunning; 
    } 

    @Override 
    public int getPhase() { 
     return 1; 
    } 
} 

Hope this Hilfe

Verwandte Themen