Spring-Boot-Thread-management

Ich bin kaum neue mit Spring-framework und ich möchte Sie Fragen, nach Meinung der Experten.

Es ist eine spring-boot-Anwendung, die mit einem rest-Endpunkt, die jedes mal aufgerufen wird, wird eine Aktion auf eine Warteschlange, die verbraucht wird, durch einen thread.

Den Weg, den ich organisiere mein code ist:

Application-Klasse
Eine runnable-Klasse.
Eine Komponente der Klasse.

Die component-Klasse hat die annotatiion @Komponente und enthält nur eine Instanz für den thread.

@Component
public class ComponenteExample {
    @Autowired
    Runnable runnableImpl;
    Thread thread;

    @PostConstruct
    private void init(){
       thread = new thread(runnableImpl);
       thread.start();
    }

Was ich möchte Sie Fragen, ob es eine bessere/elegante Möglichkeit, dies zu bewerkstelligen thread. Damit meine ich, wenn, könnte es sein, Frühling-container zu verwalten?

  • Verwenden Sie einen Testamentsvollstrecker? (Und constructor injection anstelle von Feld-Injektion; es ist mehr als überschaubar.)
  • Was ist der Allgemeine Zweck, wenn dieser thread / runnable Konstrukt? Wenn Sie möchten, eine async-Arbeiter, die Sie wirklich verwenden können, die @Async Anmerkung auf einer void (oder Future<ResultType>) - Methode und der Frühling magisch tut Dinge für Sie, einschließlich Gewinde und Warteschlangen. docs.Frühling.io/spring/docs/current/spring-framework-reference/... auch in bsmk Antwort. Reaktor würde einen Rahmen für die aufwändige asynchrone Verarbeitung Systeme.
  • Vielen Dank für die Antwort. Der Zweck ist, zum verarbeiten einer XML (auf Anfrage), aber die Verarbeitung asynchroner und aufgrund von Speichermangel werden verarbeitet XML in einer Zeit (wenn eine neue Anfrage eingeht, dann sollte man auf die Warteschlange).
InformationsquelleAutor rogerpt | 2015-11-13
Schreibe einen Kommentar