En Fri, 09 May 2008 01:30:32 -0300, skunkwerk <[EMAIL PROTECTED]> escribió:

On May 8, 4:54 pm, [EMAIL PROTECTED] wrote:
On May 8, 5:45 pm, skunkwerk <[EMAIL PROTECTED]> wrote:



> i'm getting the wrong output for the 'title' attributes for this
> data.  the queue holds a data structure (item name, position, and list
> to store results in).  each thread takes in an item name and queries a
> database for various attributes.  from the debug statements the item
> names are being retrieved correctly, but the attributes returned are
> those of other items in the queue - not its own item.  however, the
> model variable is not a global variable... so i'm not sure what's
> wrong.

> i've declared a bunch of workerthreads(100) and a queue into which
> new requests are inserted, like so:

> class SimpleDBThread ( threading.Thread ):
>    def __init__ ( self, queue ):
>                 self.__queue = queue
>                 threading.Thread.__init__ ( self )
>    def run ( self ):
>                 while 1:
>                         item = self.__queue.get()
>                         if item!=None:
>                                 model = domain.get_item(item[0])
> logger.debug('sdbthread item:'+item[0])
>                                 title = model['title']
>                                 scraped = model['scraped']
>                                 logger.debug("sdbthread title:"+title)

> any suggestions?

If man arises as a tool-carrier, we will carry tools, not people.
Don't use Python to make people; make money, and not too much.  Pick a
wage and you might get somewhere.

excuse me?

(Please forgive our local pet)

is "item" a list? Perhaps the *same* list as other requests? Be careful when you put mutable objects in a queue.
And what about domain.get_item? is it a thread safe operation?
You said the model is not a global - but is it a *different* object for each request?

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to