Jonas Brunsgaard added the comment:

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.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue26259>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to