Brooklyn

brooklyn.util.task
[Java] Class BasicTask

java.lang.Object
  brooklyn.util.task.BasicTaskStub
      brooklyn.util.task.BasicTask
All Implemented Interfaces:
Task

public class BasicTask
extends BasicTaskStub

The basic concrete implementation of a Task to be executed. A Task is a wrapper for an executable unit, such as a groovy.lang.Closure or a java.lang.Runnable or java.util.concurrent.Callable and will run in its own java.lang.Thread.

The task can be given an optional displayName and description in its constructor (as named arguments in the first java.util.Map parameter). It is guaranteed to have java.lang.Object#notify() called once whenever the task starts running and once again when the task is about to complete. Due to the way executors work it is ugly to guarantee notification after completion, so instead we notify just before then expect the user to call get() - which will throw errors if the underlying job did so - or blockUntilEnded() which will not throw errors.

See Also:
BasicTaskStub


Field Summary
protected java.lang.String blockingDetails

java.lang.String description

java.lang.String displayName

protected ExecutionManager em

discouraged, but used in tests. not always set (e.g. if it is a scheduled task)

protected long endTimeUtc

protected java.util.concurrent.Callable job

protected static Logger log

protected java.util.concurrent.Future result

protected long startTimeUtc

protected long submitTimeUtc

protected Task submittedByTask

protected java.util.Set tags

protected java.lang.Thread thread

 
Constructor Summary
protected BasicTask()

Constructor needed to prevent confusion in groovy stubs when looking for default constructor,

protected BasicTask(java.util.Map flags)

BasicTask(java.util.concurrent.Callable job)

BasicTask(java.util.Map flags, java.util.concurrent.Callable job)

BasicTask(java.lang.Runnable job)

BasicTask(java.util.Map flags, java.lang.Runnable job)

BasicTask(groovy.lang.Closure job)

BasicTask(java.util.Map flags, groovy.lang.Closure job)

 
Method Summary
void blockUntilEnded()

void blockUntilStarted()

boolean cancel()

boolean cancel(boolean mayInterruptIfRunning)

java.lang.Object get()

java.lang.Object get(long timeout, java.util.concurrent.TimeUnit unit)

protected java.lang.String getActiveTaskStatusString(int verbosity)

java.lang.String getBlockingDetails()

java.lang.String getDescription()

java.lang.String getDisplayName()

long getEndTimeUtc()

java.lang.Object getExtraStatusText()

java.util.concurrent.Future getResult()

long getStartTimeUtc()

java.lang.String getStatusDetail(boolean multiline)

Returns detailed status, suitable for a hover

protected java.lang.String getStatusString(int verbosity)

This method is useful for callers to see the status of a task.

java.lang.String getStatusSummary()

Returns a brief status string

long getSubmitTimeUtc()

Task getSubmittedByTask()

java.util.Set getTags()

java.lang.Thread getThread()

the thread where the task is running, if it is running

boolean isBegun()

boolean isCancelled()

boolean isDone()

boolean isError()

Returns true if the task has had an error.

boolean isSubmitted()

protected java.lang.String lookup(java.lang.management.LockInfo info)

void setBlockingDetails(java.lang.String blockingDetails)

allows a task user to specify why a task is blocked; for use immediately before a blocking/wait, and typically cleared immediately afterwards; referenced by management api to inspect a task which is blocking

void setExtraStatusText(java.lang.Object extraStatus)

java.lang.String toString()

 
Methods inherited from class BasicTaskStub
equals, getId, hashCode, toString
 

Field Detail

blockingDetails

protected java.lang.String blockingDetails


description

public final java.lang.String description


displayName

public final java.lang.String displayName


em

@Deprecated
protected ExecutionManager em
discouraged, but used in tests. not always set (e.g. if it is a scheduled task)
deprecated:
in 0.4.0; use current execution context, as per CompoundTask.submitXxx


endTimeUtc

protected long endTimeUtc


job

protected java.util.concurrent.Callable job


log

protected static final Logger log


result

protected java.util.concurrent.Future result


startTimeUtc

protected long startTimeUtc


submitTimeUtc

protected long submitTimeUtc


submittedByTask

protected Task submittedByTask


tags

protected final java.util.Set tags


thread

protected java.lang.Thread thread


 
Constructor Detail

BasicTask

protected BasicTask()
Constructor needed to prevent confusion in groovy stubs when looking for default constructor, The generics on groovy.lang.Closure break it if that is first constructor.


BasicTask

protected BasicTask(java.util.Map flags)


BasicTask

public BasicTask(java.util.concurrent.Callable job)


BasicTask

public BasicTask(java.util.Map flags, java.util.concurrent.Callable job)


BasicTask

public BasicTask(java.lang.Runnable job)


BasicTask

public BasicTask(java.util.Map flags, java.lang.Runnable job)


BasicTask

public BasicTask(groovy.lang.Closure job)


BasicTask

public BasicTask(java.util.Map flags, groovy.lang.Closure job)


 
Method Detail

blockUntilEnded

public void blockUntilEnded()


blockUntilStarted

public void blockUntilStarted()


cancel

public boolean cancel()


cancel

public boolean cancel(boolean mayInterruptIfRunning)


get

public java.lang.Object get()


get

public java.lang.Object get(long timeout, java.util.concurrent.TimeUnit unit)


getActiveTaskStatusString

protected java.lang.String getActiveTaskStatusString(int verbosity)


getBlockingDetails

public java.lang.String getBlockingDetails()


getDescription

public java.lang.String getDescription()


getDisplayName

public java.lang.String getDisplayName()


getEndTimeUtc

public long getEndTimeUtc()


getExtraStatusText

public java.lang.Object getExtraStatusText()


getResult

public java.util.concurrent.Future getResult()


getStartTimeUtc

public long getStartTimeUtc()


getStatusDetail

public java.lang.String getStatusDetail(boolean multiline)
Returns detailed status, suitable for a hover Plain-text format, with new-lines (and sometimes extra info) if multiline enabled.


getStatusString

protected java.lang.String getStatusString(int verbosity)
This method is useful for callers to see the status of a task. Also for developers to see best practices for examining status fields etc
Parameters:
verbosity - 0 = brief, 1 = one-line with some detail, 2 = lots of detail


getStatusSummary

public java.lang.String getStatusSummary()
Returns a brief status string Plain-text format. Reported status if there is one, otherwise state which will be one of:


getSubmitTimeUtc

public long getSubmitTimeUtc()


getSubmittedByTask

public Task getSubmittedByTask()


getTags

public java.util.Set getTags()


getThread

public java.lang.Thread getThread()
the thread where the task is running, if it is running


isBegun

public boolean isBegun()


isCancelled

public boolean isCancelled()


isDone

public boolean isDone()


isError

public boolean isError()
Returns true if the task has had an error. Only true if calling get() will throw an exception when it completes (including cancel). Implementations may set this true before completion if they have that insight, or (the default) they may compute it lazily after completion (returning false before completion).


isSubmitted

public boolean isSubmitted()


lookup

protected java.lang.String lookup(java.lang.management.LockInfo info)


setBlockingDetails

public void setBlockingDetails(java.lang.String blockingDetails)
allows a task user to specify why a task is blocked; for use immediately before a blocking/wait, and typically cleared immediately afterwards; referenced by management api to inspect a task which is blocking


setExtraStatusText

public void setExtraStatusText(java.lang.Object extraStatus)


toString

@Override
public java.lang.String toString()


 

Brooklyn Multi-Cloud Application Management Platform
brooklyncentral.github.com. Apache License. © 2012.