Keith Nation wrote:
I'm still very new to python, and I have a question about how to
prioritize jobs in a queue.

You can use the python 2.6 priority queue implementation:

$ python
Python 2.5.2 (r252:60911, Apr 21 2008, 11:12:42)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import heapq
>>> import Queue
>>>
>>> class PriorityQueue(Queue.Queue):
...     """Variant of Queue that retrieves open entries in
...     priority order (lowest first).
...     Entries are typically tuples of the form:  (priority number,
...     data)
...     This class can be found at: Python-2.6a3/Lib/Queue.py
...     """
...     maxsize = 0
...     def _init(self, maxsize):
...         self.queue = []
...     def _qsize(self, len=len):
...         return len(self.queue)
...     def _put(self, item, heappush=heapq.heappush):
...         heappush(self.queue, item)
...     def _get(self, heappop=heapq.heappop):
...         return heappop(self.queue)
...
>>> class example(object):
...     def __init__(self, p1, p2, p3, p4):
...         self.p1 = p1
...         self.p2 = p2
...         self.p3 = p3
...         self.p4 = p4
...
>>> pq = PriorityQueue()
>>> ex = example('Task1', 'v03', '-start', 'Bonnie')
>>> pq.put((1, ex))
>>> ex = example('Task3', 'v01', '-start', 'Bob')
>>> pq.put((3, ex))
>>> ex = example('Task2', 'v01', '-start', 'Billy')
>>> pq.put((2, ex))
>>> pr, ex = pq.get() # prints task 1
>>> print ex.p1, ex.p2, ex.p3, ex.p4
Task1 v03 -start Bonnie
>>> pr, ex = pq.get() # prints task 2
>>> print ex.p1, ex.p2, ex.p3, ex.p4
Task2 v01 -start Billy
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to