- include move of doc samples out of akka package also in the includecode directives - fix broken serialization docs, which require one thing in the akka package
60 lines
2.2 KiB
ReStructuredText
60 lines
2.2 KiB
ReStructuredText
|
|
.. _scheduler-java:
|
|
|
|
##################
|
|
Scheduler (Java)
|
|
##################
|
|
|
|
Sometimes the need for making things happen in the future arises, and where do you go look then?
|
|
Look no further than ``ActorSystem``! There you find the :meth:`scheduler` method that returns an instance
|
|
of akka.actor.Scheduler, this instance is unique per ActorSystem and is used internally for scheduling things
|
|
to happen at specific points in time. Please note that the scheduled tasks are executed by the default
|
|
``MessageDispatcher`` of the ``ActorSystem``.
|
|
|
|
You can schedule sending of messages to actors and execution of tasks (functions or Runnable).
|
|
You will get a ``Cancellable`` back that you can call :meth:`cancel` on to cancel the execution of the
|
|
scheduled operation.
|
|
|
|
.. warning::
|
|
|
|
The default implementation of ``Scheduler`` used by Akka is based on the Netty ``HashedWheelTimer``.
|
|
It does not execute tasks at the exact time, but on every tick, it will run everything that is overdue.
|
|
The accuracy of the default Scheduler can be modified by the "ticks-per-wheel" and "tick-duration" configuration
|
|
properties. For more information, see: `HashedWheelTimers <http://www.cse.wustl.edu/~cdgill/courses/cs6874/TimingWheels.ppt>`_.
|
|
|
|
Some examples
|
|
-------------
|
|
|
|
.. includecode:: code/docs/actor/SchedulerDocTestBase.java
|
|
:include: imports1,schedule-one-off-message
|
|
|
|
.. includecode:: code/docs/actor/SchedulerDocTestBase.java
|
|
:include: schedule-one-off-thunk
|
|
|
|
.. includecode:: code/docs/actor/SchedulerDocTestBase.java
|
|
:include: imports1,imports2,schedule-recurring
|
|
|
|
From ``akka.actor.ActorSystem``
|
|
-------------------------------
|
|
|
|
.. includecode:: ../../akka-actor/src/main/scala/akka/actor/ActorSystem.scala
|
|
:include: scheduler
|
|
|
|
|
|
The Scheduler interface
|
|
-----------------------
|
|
|
|
.. includecode:: ../../akka-actor/src/main/scala/akka/actor/Scheduler.scala
|
|
:include: scheduler
|
|
|
|
The Cancellable interface
|
|
-------------------------
|
|
|
|
This allows you to ``cancel`` something that has been scheduled for execution.
|
|
|
|
.. warning::
|
|
This does not abort the execution of the task, if it had already been started.
|
|
|
|
.. includecode:: ../../akka-actor/src/main/scala/akka/actor/Scheduler.scala
|
|
:include: cancellable
|
|
|