Package org.duracloud.common.queue.local
Class LocalTaskQueue
- java.lang.Object
-
- org.duracloud.common.queue.local.LocalTaskQueue
-
-
Constructor Summary
Constructors Constructor Description LocalTaskQueue()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
deleteTask(Task task)
Deletes a task from the queue.void
deleteTasks(Set<Task> tasks)
Deletes a set of tasksvoid
extendVisibilityTimeout(Task task)
Responsible for robustly extending the visibility timeout of a Task.long
getCompletedCount()
int
getInprocessCount()
String
getName()
A name identifying the queue used for logging and analysis purposes.void
put(Set<Task> tasks)
puts multiple tasks on the queue using batch puts if the queue implementation supports batch putsvoid
put(Task task)
puts a task on the queuevoid
put(Task... tasks)
puts multiple tasks on the queue using batch puts if the queue implementation supports batch putsvoid
requeue(Task task)
Requeues the task by deleting the task, incrementing the "attempts" counter, and re-adding back to the queue.Integer
size()
Integer
sizeIncludingInvisibleAndDelayed()
Task
take()
Blocks until a task is availableSet<Task>
take(int maxTasks)
Take a max of specified number of tasks.
-
-
-
Method Detail
-
getName
public String getName()
Description copied from interface:TaskQueue
A name identifying the queue used for logging and analysis purposes.
-
put
public void put(Task task)
Description copied from interface:TaskQueue
puts a task on the queue
-
put
public void put(Task... tasks)
Description copied from interface:TaskQueue
puts multiple tasks on the queue using batch puts if the queue implementation supports batch puts
-
put
public void put(Set<Task> tasks)
Description copied from interface:TaskQueue
puts multiple tasks on the queue using batch puts if the queue implementation supports batch puts
-
take
public Task take() throws TimeoutException
Description copied from interface:TaskQueue
Blocks until a task is available- Specified by:
take
in interfaceTaskQueue
- Returns:
- Throws:
TimeoutException
-
extendVisibilityTimeout
public void extendVisibilityTimeout(Task task) throws TaskNotFoundException
Description copied from interface:TaskQueue
Responsible for robustly extending the visibility timeout of a Task.- Specified by:
extendVisibilityTimeout
in interfaceTaskQueue
- Throws:
TaskNotFoundException
-
deleteTask
public void deleteTask(Task task) throws TaskNotFoundException
Description copied from interface:TaskQueue
Deletes a task from the queue.- Specified by:
deleteTask
in interfaceTaskQueue
- Throws:
TaskNotFoundException
-
size
public Integer size()
-
getInprocessCount
public int getInprocessCount()
-
getCompletedCount
public long getCompletedCount()
-
sizeIncludingInvisibleAndDelayed
public Integer sizeIncludingInvisibleAndDelayed()
- Specified by:
sizeIncludingInvisibleAndDelayed
in interfaceTaskQueue
- Returns:
- The approximate number of elements in this queue including all items that are visible (available for takes), invisible (in process - not yet completed), and delayed (pending addition to the queue).
-
requeue
public void requeue(Task task)
Description copied from interface:TaskQueue
Requeues the task by deleting the task, incrementing the "attempts" counter, and re-adding back to the queue. Any subsequent calls on the requeued task via the task queue should fail due to the task not being found.
-
deleteTasks
public void deleteTasks(Set<Task> tasks) throws TaskException
Description copied from interface:TaskQueue
Deletes a set of tasks- Specified by:
deleteTasks
in interfaceTaskQueue
- Throws:
TaskException
-
take
public Set<Task> take(int maxTasks) throws TimeoutException
Description copied from interface:TaskQueue
Take a max of specified number of tasks. Blocks until at least one task is available.- Specified by:
take
in interfaceTaskQueue
- Parameters:
maxTasks
- to take from queue. Must be between 1 and 10 inclusive.- Returns:
- Throws:
TimeoutException
-
-