Package Scientific :: Package DistributedComputing :: Module TaskManager :: Class TaskQueue
[frames] | no frames]

Class TaskQueue

object --+
         |
        TaskQueue

A FIFO queue for tasks. This class is thread-safe.

Instance Methods
 
__init__(self)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
int
__len__(self)
Returns: the number of tasks in the queue
 
addTask(self, task, in_front=False)
Task

Removes the first task from the queue and returns it. If the task queue is empty, the method blocks until a task becomes available.

firstTask(self)
Returns: the first task in the queue
Task

Removes the first task with the given tag from the queue and returns it. If no task with the requested tag is available, the method blocks until a matching task becomes available.

firstTaskWithTag(self, tag)
Returns: the first task in the queue
dict
taskCount(self)
Returns: a dictionary listing the number of tasks for each tag
Task

Removes the task with the given task_id from the queue and returns it. If the task is not in the queue, the method blocks until it becomes available.

taskWithId(self, task_id)
Returns: the task with the given task_id
 
terminateWaitingThreads(self)
Makes all threads waiting for a task raise TaskManagerTermination.

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Properties

Inherited from object: __class__

Method Details

__init__(self)
(Constructor)

 

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Overrides: object.__init__
(inherited documentation)

__len__(self)
(Length operator)

 
Returns: int
the number of tasks in the queue

addTask(self, task, in_front=False)

 
Parameters:
  • task (Task) - the task to be added
  • in_front (bool) - if True, add the task at the beginning of the queue (this is for re-scheduling tasks that were rejected or not properly handled). Otherwise, add the task at the end of the queue.

firstTask(self)

 
Returns: Task

Removes the first task from the queue and returns it. If the task queue is empty, the method blocks until a task becomes available.

the first task in the queue

firstTaskWithTag(self, tag)

 
Parameters:
  • tag (str) - a task tag
Returns: Task

Removes the first task with the given tag from the queue and returns it. If no task with the requested tag is available, the method blocks until a matching task becomes available.

the first task in the queue

taskCount(self)

 
Returns: dict
a dictionary listing the number of tasks for each tag

taskWithId(self, task_id)

 
Parameters:
  • task_id (str) - a task id
Returns: Task

Removes the task with the given task_id from the queue and returns it. If the task is not in the queue, the method blocks until it becomes available.

the task with the given task_id