我在kombu有两个队列;一个提交请求(做某事),另一个通过 pub/sub 吐出所述请求的增量状态。因此,在我的过程中,它将发布到请求队列并在响应队列中使用。由于任务可能需要一些时间,我想向用户提供有关后端发生的事情的反馈;这一切都在命令行上运行,因为我的 Kombuconsume
回调允许我添加一条logging.info()
语句以向我的用户吐回信息:
def callback( msg, env ):
logging.info( str(msg) )
consumer.register_callback( callback )
consumer.consume()
while continue_consuming:
connection.drain_events()
但是,我现在希望能够在 django 中提供相同的功能。我知道我可以创建一个generator
函数作为HttpResponse
对象的输入:
def view( reqeust ):
HttpResponse( gen() )
def gen():
yield 'streaming... '
但我无法概念化如何将kombu队列的消息回调实现到生成器中来提供这个......有什么想法吗?
如果可能的话,我想避免使用数据库层来存储进度/结果。