Ich versuche, die folgenden Frühling Aufgabe XML-Konfiguration auf eine rein Code/Annotation basierte Version zu konvertieren:Wie geht man von der XML Spring Scheduling Konfiguration zur Annotation/Code Konfiguration?
<task:executor id="xyz.executor"
pool-size="${xyz.job.executor.pool.size:1-40}"
queue-capacity="${xyz.job.executor.queue.capacity:0}"
rejection-policy="CALLER_RUNS"/>
<task:scheduler id="xyz.scheduler" pool size="${xyz.job.scheduler.pool.size:4}" />
<task:annotation-driven executor="xyz.executor" scheduler="xyz.scheduler" />
<bean id='xyzProcessor' class="xyz.queueing.QueueProcessor" />
<task:scheduled-tasks scheduler="xyz.scheduler" >
<task:scheduled ref="partitioner" method="createPartitions" cron="${xyz.job.partitioner.interval:0 0 3 * * *}" />
</task:scheduled-tasks>
Per Früjahr spec, 28.4.1 (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html), sagen sie, dass von XML so zu gehen :
Die Code-Konfiguration ist so einfach wie die Aktivierung von @EnableScheduling und/oder @EnableAsync.
Allerdings kann ich nirgends den Scheduler tatsächlich instanziieren. Das Javadoc für @EnableScheduling (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/annotation/EnableScheduling.html) zeigt, wie ich meinen eigenen erstellten Executor einstecken kann, obwohl ich nicht genau weiß, welche Klasse es sein sollte (ich möchte immer noch die Poolgröße, die Warteschlangenkapazität und die Zurückweisung steuern können) Politik). Es zeigt auch, wie ich meine createPartitions-Methode mithilfe der configureTasks-Überschreibung einplanen kann. Ich möchte jedoch meinen Scheduler benennen können (damit ich seine Threads identifizieren kann) und seine Poolgröße steuern.
So möchte ich diese Dinge wissen:
1) Welche Klasse kann ich die Testamentsvollstrecker Felder setzen verwenden, die die XML hat?
2) Gibt es eine Möglichkeit, eine Scheduler-Instanz zu erstellen, mit der ich den Namen und die Poolgröße von? Steuern kann?
Das ist hilfreich für den Executor-Teil, aber wie kontrolliere ich die Poolgröße oder den Namen auf einem Scheduler? – AHungerArtist
@ahu Im obigen Beispiel werden Sie feststellen, dass es Methoden gibt, um die Poolgröße festzulegen. Es gibt auch eine Methode zum Festlegen einer 'ThreadFactory', in der Sie die Namen der erstellten Threads steuern können. –
Ich verstehe es jetzt; Ich war vorher ein wenig verwirrt. Vielen Dank. – AHungerArtist