Package com.logicaldoc.core.task
Class Task
- java.lang.Object
-
- com.logicaldoc.core.task.Task
-
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
AbstractDocumentProcessor
,DigestProcessor
,IndexerTask
,IndexOptimizer
,PathCalculator
,StatsCollector
,TagsProcessor
public abstract class Task extends Object implements Runnable
A task is a long running process that is fired regularly- Since:
- 3.5.0
- Author:
- Marco Meschieri - LogicalDOC
-
-
Field Summary
Fields Modifier and Type Field Description static int
STATUS_IDLE
static int
STATUS_RUNNING
static int
STATUS_STOPPING
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addTaskListener(TaskListener listener)
int
getCompletionPercentage()
The percentage of completion(1-100)ContextProperties
getConfig()
String
getName()
long
getProgress()
The current processing stepString
getReportRecipients()
TaskScheduling
getScheduling()
Scheduling policieslong
getSize()
The the total size of the processing(number of units of work)int
getStatus()
The task status.void
interrupt()
abstract boolean
isConcurrent()
Concrete implementations must override this method declaring if the task supports multiple instances running concurrently.abstract boolean
isIndeterminate()
Concrete implementations must override this method declaring if the task is indeterminate.boolean
isInterrupted()
boolean
isInterruptRequested()
boolean
isRunning()
Check if the task is currently runningboolean
isSendActivityReport()
void
notifyReport()
void
removeTaskListener(TaskListener listener)
void
run()
void
save()
Saves the task configurationvoid
saveWork()
Concrete implementations must insert here the code needed to save the elaboration state in a persistent storagevoid
setConfig(ContextProperties config)
void
setLockManager(LockManager lockManager)
void
setReportRecipients(String reportRecipients)
void
setSendActivityReport(boolean sendActivityReport)
void
setSender(EMailSender sender)
void
setSize(long size)
void
setSystemLoadMonitor(SystemLoadMonitor systemLoadMonitor)
void
setUserDao(UserDAO userDao)
-
-
-
Field Detail
-
STATUS_IDLE
public static final int STATUS_IDLE
- See Also:
- Constant Field Values
-
STATUS_RUNNING
public static final int STATUS_RUNNING
- See Also:
- Constant Field Values
-
STATUS_STOPPING
public static final int STATUS_STOPPING
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Task
public Task(String name)
-
-
Method Detail
-
getName
public String getName()
-
interrupt
public void interrupt()
-
isInterrupted
public boolean isInterrupted()
-
getSize
public long getSize()
The the total size of the processing(number of units of work)- Returns:
- total number of steps
-
setSize
public void setSize(long size)
-
getStatus
public int getStatus()
The task status.- Returns:
- the status
- See Also:
STATUS_IDLE
,STATUS_RUNNING
,STATUS_STOPPING
-
getProgress
public long getProgress()
The current processing step- Returns:
- the current step
-
getCompletionPercentage
public int getCompletionPercentage()
The percentage of completion(1-100)- Returns:
- a percentage(1-100)
-
isRunning
public boolean isRunning()
Check if the task is currently running- Returns:
- true if the task is running(
STATUS_RUNNING
)
-
saveWork
public void saveWork()
Concrete implementations must insert here the code needed to save the elaboration state in a persistent storage
-
getScheduling
public TaskScheduling getScheduling()
Scheduling policies- Returns:
- the scheduling policies
-
addTaskListener
public void addTaskListener(TaskListener listener)
-
removeTaskListener
public void removeTaskListener(TaskListener listener)
-
notifyReport
public void notifyReport()
-
isIndeterminate
public abstract boolean isIndeterminate()
Concrete implementations must override this method declaring if the task is indeterminate. An indeterminate task is not able to compute it's time length- Returns:
- true if the task is indeterminate
-
isConcurrent
public abstract boolean isConcurrent()
Concrete implementations must override this method declaring if the task supports multiple instances running concurrently.- Returns:
- true if the task is concurrent
-
getReportRecipients
public String getReportRecipients()
-
getConfig
public ContextProperties getConfig()
-
setConfig
public void setConfig(ContextProperties config)
-
setSender
public void setSender(EMailSender sender)
-
setUserDao
public void setUserDao(UserDAO userDao)
-
save
public void save() throws IOException, ParseException
Saves the task configuration- Throws:
ParseException
- raised if the configuration cannot be parsedIOException
- raised if the configuration cannot be written
-
isSendActivityReport
public boolean isSendActivityReport()
-
setSendActivityReport
public void setSendActivityReport(boolean sendActivityReport)
-
setReportRecipients
public void setReportRecipients(String reportRecipients)
-
setLockManager
public void setLockManager(LockManager lockManager)
-
setSystemLoadMonitor
public void setSystemLoadMonitor(SystemLoadMonitor systemLoadMonitor)
-
isInterruptRequested
public boolean isInterruptRequested()
-
-