flask - 在一个 http 请求中发布到生产者和来自消费者的请求
问题描述
我有一些需要由外部库处理的数据,我通过 Flask 中的 POST 请求将数据发送给 Kafka 生产者,处理完外部库后将数据发送给消费者。
在 app.py 文件中,我有这样的内容:
from flask import request, jsonify
from app.common import kafka_buffer
@app.route('/process', methods=['POST'])
def process_data():
data = request.get_json()
response = kafka_buffer(data)
return jsonify([r for r in response])
在 common.py 文件中,我有这样的内容:
from kafka import KafkaProducer, KafkaConsumer
producer = KafkaProducer(bootstrap_servers='localhost:9092')
consumer = KafkaConsumer('some_consumer', bootstrap_servers='localhost:9092')
kafka_buffer(text):
producer.send('some_producer', bytes(text, 'utf-8'))
for message in consumer:
yield message.value
当我尝试从消费者那里获取数据作为响应时,我得到一个超时错误,并且永远不会得到处理过的数据,它只是挂在那里。
我想要的是一次性将处理后的数据作为 HTTP 响应发送回来,我的意思是在同一个请求中。
有任何想法吗?
解决方案
推荐阅读
- git - 添加到用户的 SSH 密钥在注销后被删除
- android - Handler.post(Runnable) 有时不起作用
- python - 使用 numpy 进行快速元素节点平均
- unix - 如何在 UNIX 中通过密件抄送发送邮件
- list - Prolog:将大小为 N 的列表拆分为两个已知大小为 K 和 NK 的列表
- c# - 程序 * 不包含适用于入口点的静态“Main”方法
- c# - Visual Studio 测试任务:测试程序集通配符格式
- javascript - 我的 JSON 不实用,我想更改它,我该怎么做?
- android - 突出显示 GridView 上的选定项目
- c++ - 带有backstrace的c ++异常不打印调用者函数详细信息