Brooklyn

brooklyn.util.task
[Java] Class DynamicTasks

java.lang.Object
  brooklyn.util.task.DynamicTasks

@Beta
public class DynamicTasks

Contains static methods which detect and use the current TaskQueueingContext to execute tasks.

Since:
0.6.0


Nested Class Summary
static class DynamicTasks.TaskQueueingResult

 
Method Summary
static java.lang.Object get(TaskAdaptable t)

submits the given task if needed, and gets the result (unchecked) only permitted in a queueing context (ie a DST main job)

static TaskQueueingContext getTaskQueuingContext()

static TaskQueueingContext getThreadTaskQueuingContext()

static java.lang.Object queue(java.lang.Object task)

static void queue(TaskAdaptable task1, TaskAdaptable task2, TaskAdaptable... tasks)

static java.lang.Object queue(TaskFactory taskFactory)

static void queue(TaskFactory task1, TaskFactory task2, TaskFactory... tasks)

static Task queue(java.lang.String name, java.util.concurrent.Callable job)

static Task queue(java.lang.String name, java.lang.Runnable job)

static java.lang.Object queueIfNeeded(java.lang.Object task)

static DynamicTasks.TaskQueueingResult queueIfPossible(TaskAdaptable task)

tries to add the task to the current addition context if there is one, otherwise does nothing

static DynamicTasks.TaskQueueingResult queueIfPossible(TaskFactory task)

static Task queueInTaskHierarchy(Task task)

adds the given task to the nearest task addition context, either set as a thread-local, or in the current task, or the submitter of the task, etc

static void removeTaskQueueingContext()

static void setTaskQueueingContext(TaskQueueingContext newTaskQC)

static Task waitForLast()

Waits for the last task queued in this context to complete; it throws if there is a problem, but happily returns null if there is no last task.

 
Methods inherited from class java.lang.Object
java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Method Detail

get

public static java.lang.Object get(TaskAdaptable t)
submits the given task if needed, and gets the result (unchecked) only permitted in a queueing context (ie a DST main job)


getTaskQueuingContext

public static TaskQueueingContext getTaskQueuingContext()


getThreadTaskQueuingContext

public static TaskQueueingContext getThreadTaskQueuingContext()


queue

public static java.lang.Object queue(java.lang.Object task)


queue

public static void queue(TaskAdaptable task1, TaskAdaptable task2, TaskAdaptable... tasks)


queue

public static java.lang.Object queue(TaskFactory taskFactory)


queue

public static void queue(TaskFactory task1, TaskFactory task2, TaskFactory... tasks)


queue

public static Task queue(java.lang.String name, java.util.concurrent.Callable job)


queue

public static Task queue(java.lang.String name, java.lang.Runnable job)


queueIfNeeded

public static java.lang.Object queueIfNeeded(java.lang.Object task)


queueIfPossible

public static DynamicTasks.TaskQueueingResult queueIfPossible(TaskAdaptable task)
tries to add the task to the current addition context if there is one, otherwise does nothing


queueIfPossible

public static DynamicTasks.TaskQueueingResult queueIfPossible(TaskFactory task)


queueInTaskHierarchy

public static Task queueInTaskHierarchy(Task task)
adds the given task to the nearest task addition context, either set as a thread-local, or in the current task, or the submitter of the task, etc

throws if it cannot add


removeTaskQueueingContext

public static void removeTaskQueueingContext()


setTaskQueueingContext

public static void setTaskQueueingContext(TaskQueueingContext newTaskQC)


waitForLast

public static Task waitForLast()
Waits for the last task queued in this context to complete; it throws if there is a problem, but happily returns null if there is no last task.

Preferred over last().get() because this waits on all tasks, in sequentially (so that blocking information is always accurate)


 

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