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 einervoid
(oderFuture<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).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für asynchrone Aufruf können Sie https://spring.io/guides/gs/async-method/
Allerdings, wenn Sie möchten, verwenden Sie Warteschlangen, die Sie suchen sollten bei https://spring.io/guides/gs/messaging-jms
Sowie für ereignisgesteuerte Anwendungen gibt es https://spring.io/guides/gs/messaging-reactor/