2013-08-08 4 views
5

ich auf einer bestehenden Anwendung arbeite, die dieses Stück Code bekommen hatWas ThreadPoolTaskExecutor oder SimpleAsyncTaskExecutor in meinem Fall zu wählen?

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 
     <property name="corePoolSize" value="50" /> 
     <property name="maxPoolSize" value="200" /> 
     <property name="queueCapacity" value="250" /> 
    </bean> 

Wir haben eine Methode, die die oben taskExecutor wird mit einer particuar Aufgabe abzuschließen. (Diese Aufgabe sollte abgeschlossen sein, kann aber asynchron abgeschlossen werden)

Diese besondere Aufgabe ist tatsächlich verantwortlich, 100 Dokumente in die Datenbank einzufügen.

So hatte ich geplant, SimpleAsyncTaskExecutor statt ThreadPoolTaskExecutor zu verwenden.

Bitte lassen Sie mich wissen, ob dies die Leistung auswirken wird, oder erstellen Sie alle Probleme

Unsere Anwendung ist ein multithreaded ein, und es wird ca. 700 Nutzer jederzeit sein.

Also ich weiß nicht, wie es unter Produktionsumgebung verhält

Antwort

0

Was (die während der Entwicklung in Ordnung sein kann), wie ich die Verwendung von SimpleAsyncTaskExecutor weiß es sinnvoll, in den Fällen, wenn Sie einige lange Zeit ausgeführt werden sollen -Ausführungsaufgaben, z wenn Sie Protokolldateien am Ende eines Tages komprimieren möchten. In anderen Fällen sollten Sie den ThreadPoolTaskExecutor wegen der Wiederverwendung von Systemressourcen verwenden, wenn Sie alle n Sekunden oder Minuten einen Kurzzeittask ausführen möchten.

Technisch funktionieren beide Varianten. Aber ich würde ThreadPoolTaskExecutor für Ihre Aufgabe verwenden.

Verwandte Themen