首页 > 解决方案 > 我如何在烧瓶中同时运行相同的路线?

问题描述

我想在 Flask 中运行相同的路线。

我想使用烧瓶从 Kafka 获取相同的主题并应用不同的功能。在我得到结果值之后,我想通过另一个主题将它发送给 Kafka。

但它不能同时工作。

我们如何让它同时工作?可能吗?

请帮我。:)

@app.route('/kafka/') 
def model_a(): 
    consumer = KafkaConsumer(bootstrap_servers = ['localhost:9092'], 
                                 #client_id = 'name of client', 
                                 auto_offset_reset = 'earliest', 
                                 value_deserializer =\
                                 lambda m: json.loads(m.decode('ascii'))) 
    consumer.subscribe(topics=['numtest']) 
    def events():
        result = []
        for message in consumer:
            if message is not None:
                output = str( message.value["number"]) 
                split_data = [float(i) for i in output.split(",")]
                output = np.round(np.mean(split_data),2)
                producer.flush()
                producer.send('my_topic', {'Result2' : output })
                #yield "<p>Result2 : " + str(output)  +"</p>"
            else :
                producer.flush()
                producer.send('my_topic', {'Result2' : -999 })
                yield "not result : "
                #result.append( str( message.value["number"]) )  # <--- here (str)
            #yield result[0]
    return Response(events()) 

@app.route('/kafka/') 
def model_b(): 
    consumer = KafkaConsumer(bootstrap_servers = ['localhost:9092'], 
                                 #client_id = 'name of client', 
                                 auto_offset_reset = 'earliest', 
                                 value_deserializer =\
                                 lambda m: json.loads(m.decode('ascii'))) 
    consumer.subscribe(topics=['numtest']) 
    def events():
        result = []
        for message in consumer:
            #print(message)
            #print("result" , message.value["number"])
            if message is not None:
                output = str( message.value["number"]) 
                split_data = [float(i) for i in output.split(",")]
                output = np.round(np.mean(split_data),2)
                producer.flush()
                producer.send('my-topic', {'Result' : output })
                #yield "Result : " + str(output) + "\n"
            else :
                producer.flush()
                producer.send('my-topic', {'Result' : -999 })
                yield "not result : " + "\n"
                #result.append( str( message.value["number"]) )  # <--- here (str)
            #yield result[0]
    return Response(events()) 

标签: pythonflaskapache-kafka

解决方案


推荐阅读