c++ - 如何在python的阻塞的函數中取得變數值
迷茫
迷茫 2017-06-17 09:15:52
0
1
951

目前是使用C 嵌入式的python函數
python函數是阻塞式的接收伺服器訊息
直到退出監聽才會有回傳值
監聽中收到訊息會呼叫python的一個回呼函數,可以取得到收到的訊息
所以要怎麼樣來回傳訊息給C

EDIT:
程式碼如下callback列印可以列印正確數據,問題是
這裡用pika庫寫的rabbitMQ 的client就是為了不用
rabbitMQ的C庫
現在有一種考慮就是再用C寫一個python可以調的module
然後在回呼函數裡面調,就是感覺有點醜。

#!/usr/bin/env python
import pika
import sys

message = ""

def callback(ch, method, properties, body):
    message = body
    print(method.routing_key)
    return message    

def consume():
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()
    result = channel.queue_declare(exclusive=True)
    queue_name = result.method.queue

    channel.queue_bind(exchange='normalEx',
                       routing_key='remote',
                       queue=queue_name)

    print(' [*] Waiting for logs. To exit press CTRL+C')

    channel.basic_consume(callback,
                          queue=queue_name,
                          no_ack=True)

    channel.start_consuming()
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(1)
小葫芦

處於堵塞的函數, 都需要等到收到數據或者等待超時才能返回的, 如果你想要快點返回, 就採用不堵塞的方式咯,只不過這樣會比較蛋疼

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板