|
|
|
|
@ -3,22 +3,29 @@
@@ -3,22 +3,29 @@
|
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> |
|
|
|
|
|
|
|
|
|
<chapter id="scheduling"> |
|
|
|
|
<title>Scheduling and Thread Pooling</title> |
|
|
|
|
<title>Asynchronous Execution, Scheduling, and Thread Pooling</title> |
|
|
|
|
<section id="scheduling-introduction"> |
|
|
|
|
<title>Introduction</title> |
|
|
|
|
<para> |
|
|
|
|
The Spring Framework features integration classes for scheduling support. Currently, Spring |
|
|
|
|
supports the <classname>Timer</classname>, part of the JDK since 1.3, and the |
|
|
|
|
Quartz Scheduler (<ulink url="http://www.opensymphony.com/quartz/"/>). Both schedulers |
|
|
|
|
The Spring Framework provides abstractions for asynchronous execution and scheduling of tasks |
|
|
|
|
with the <interfacename>TaskExecutor</interfacename> and <interfacename>TaskScheduler</interfacename> |
|
|
|
|
interfaces, respectively. Spring also features implementations of those interfaces that support |
|
|
|
|
thread pools or delegation to CommonJ within an application server environment. Ultimately |
|
|
|
|
the use of these implementations behind the common interfaces abstracts away the differences |
|
|
|
|
between Java SE 5, Java SE 6 and Java EE environments. |
|
|
|
|
</para> |
|
|
|
|
<para> |
|
|
|
|
Spring also features integration classes for supporting scheduling with the |
|
|
|
|
<classname>Timer</classname>, part of the JDK since 1.3, and the Quartz Scheduler |
|
|
|
|
(<ulink url="http://www.opensymphony.com/quartz/"/>). Both of those schedulers |
|
|
|
|
are set up using a <interfacename>FactoryBean</interfacename> with optional references |
|
|
|
|
to <classname>Timer</classname> or <classname>Trigger</classname> instances, respectively. |
|
|
|
|
Furthermore, a convenience class for both the Quartz Scheduler and the <classname>Timer</classname> is |
|
|
|
|
available that allows you to invoke a method of an existing target object |
|
|
|
|
(analogous to the normal <classname>MethodInvokingFactoryBean</classname> operation). |
|
|
|
|
Spring also features classes for thread pooling that abstract |
|
|
|
|
away differences between Java SE 1.4, Java SE 5 and Java EE environments. |
|
|
|
|
</para> |
|
|
|
|
</para> |
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
<section id="scheduling-task-executor"> |
|
|
|
|
<title>The Spring <interfacename>TaskExecutor</interfacename> abstraction</title> |
|
|
|
|
|
|
|
|
|
|