public abstract class WikiBackgroundThread extends Thread implements WikiEventListener
WikiEngineEvent.SHUTDOWN
event,
it terminates itself. Subclasses of this method need only implement the method backgroundTask()
, instead of
the normal Thread.run()
, and provide a constructor that passes the WikiEngine and sleep interval. This
class is thread-safe.Thread.State, Thread.UncaughtExceptionHandler
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Constructor and Description |
---|
WikiBackgroundThread(WikiEngine engine,
int sleepInterval)
Constructs a new instance of this background thread with a specified sleep interval, and adds the new instance
to the wiki engine's event listeners.
|
Modifier and Type | Method and Description |
---|---|
void |
actionPerformed(WikiEvent event)
Listens for
WikiEngineEvent.SHUTDOWN and, if detected, marks the thread for death. |
abstract void |
backgroundTask()
Abstract method that performs the actual work for this background thread; subclasses must implement this method.
|
WikiEngine |
getEngine()
Returns the WikiEngine that created this background thread.
|
void |
run()
Runs the background thread's
backgroundTask() method at the interval specified at construction. |
void |
shutdown()
Requests the shutdown of this background thread.
|
void |
shutdownTask()
Executes a task after shutdown signal was detected.
|
void |
startupTask()
Executes a task just after the thread's
Thread.run() method starts, but before the
backgroundTask() task executes. |
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
public WikiBackgroundThread(WikiEngine engine, int sleepInterval)
engine
- the wiki enginesleepInterval
- the interval between invocations of
the thread's Thread.run()
method, in secondspublic final void actionPerformed(WikiEvent event)
WikiEngineEvent.SHUTDOWN
and, if detected, marks the thread for death.actionPerformed
in interface WikiEventListener
event
- a WikiEvent objectWikiEventListener.actionPerformed(org.apache.wiki.event.WikiEvent)
public abstract void backgroundTask() throws Exception
Exception
- Any exception can be thrownpublic WikiEngine getEngine()
public void shutdown()
public final void run()
backgroundTask()
method at the interval specified at construction.
The thread will initially pause for a full sleep interval before starting, after which it will execute
startupTask()
. This method will cleanly terminate the thread if it has previously been marked as
dead, before which it will execute shutdownTask()
. If any of the three methods return an exception,
it will be re-thrown as a InternalWikiException
.run
in interface Runnable
run
in class Thread
Thread.run()
public void shutdownTask() throws Exception
Exception
- Any exception can be thrown.public void startupTask() throws Exception
Thread.run()
method starts, but before the
backgroundTask()
task executes. By default, this method does nothing; override it to implement
custom functionality.Exception
- Any exception can be thrown.Copyright © 2001-2019 The Apache Software Foundation. All rights reserved.