в итоге я решил немного реструктурировать код; поскольку у меня была оболочка для очереди комбу, чтобы сделать интерфейс более похожим на multiprocess.Queue
, я создал генератор для моего get()
метода.
def get( self, until=None ):
if until == None:
until = self.end_marker
for c in count():
m = self.consumer.queues[0].get( True )
if not m == None:
if m.payload == until:
raise StopIteration
yield m.payload
это, кажется, работает нормально - но не все так чисто, поскольку мне нужно знать, что такое self.end_marker
или util
, а также может потребоваться перебрать все очереди потребителей (но мой класс - очередь на объект во всяком случае, так что это не так уж плохо)
тогда все, что я делаю, на мой взгляд:
def view( response ):
q = Queue()
return HttpResponse( q.get() )
есть многочисленные сообщения о том, как мешает различное промежуточное ПО; я просто не пытаюсь их использовать, и, кажется, все работает нормально.