This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Brunsgaard
Recipients Brunsgaard, gvanrossum, vstinner, yselivanov
Date 2016-02-01.17:28:00
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1454347680.42.0.147949880695.issue26259@psf.upfronthosting.co.za>
In-reply-to
Content
In my particular case, I developed an application close to beanstalkd, but with redis as "engine". I did create a callbackback reader class for users to subclass, the callbackreader is checking every second, on every tube(queue.Object). If new data has arrived for processing (this subroutine is using queue.get with wait_for). Maybe asyncio.Condition would have been the better choice. The easy solution was to check if the queue was empty and skip the read (get call) if there was nothing in the queue.

Before my fix, over a week the program would take up 10 Gigs of memory in our staging environment if nothing was touched, so I was assigned to investigate the cause. I think the current behavior is undesirable and cumbersome to see through, and if not changed there should be some kind of note in the documentation, so other good python folks will have a better chance to understand the behavior without reading the cpython asyncio queue implementation.
History
Date User Action Args
2016-02-01 17:28:00Brunsgaardsetrecipients: + Brunsgaard, gvanrossum, vstinner, yselivanov
2016-02-01 17:28:00Brunsgaardsetmessageid: <1454347680.42.0.147949880695.issue26259@psf.upfronthosting.co.za>
2016-02-01 17:28:00Brunsgaardlinkissue26259 messages
2016-02-01 17:28:00Brunsgaardcreate