c++ - 如何在python的阻塞的函數(shù)中獲取變量值
問題描述
目前是使用C++嵌入式的python函數(shù)python函數(shù)是阻塞式的接收服務(wù)器消息直到退出監(jiān)聽才會(huì)有返回值監(jiān)聽中收到消息會(huì)調(diào)用python的一個(gè)回調(diào)函數(shù),可以獲取到收到的消息所以要怎么樣來返回消息給C++
EDIT:代碼如下callback打印可以打印正確數(shù)據(jù),問題是這里用pika庫寫的rabbitMQ 的client就是為了不用rabbitMQ的C庫現(xiàn)在有一種考慮就是再用C寫一個(gè)python可以調(diào)的module然后在回調(diào)函數(shù)里面調(diào),就是感覺有點(diǎn)丑陋。
#!/usr/bin/env pythonimport pikaimport sysmessage = ''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:處于堵塞的函數(shù), 都需要等到收到數(shù)據(jù)或者等待超時(shí)才能返回的, 如果你想要快點(diǎn)返回, 就采用不堵塞的方式咯,只不過這樣會(huì)比較蛋疼
相關(guān)文章:
1. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. 為什么我ping不通我的docker容器呢???3. docker-compose中volumes的問題4. php工具中的mysql還是5.1以下的,請問如何才能升級到5.1以上?5. angular.js - angular 配置代理proxy.conf.json后報(bào)錯(cuò),頁面返回500internal server error?6. javascript - 移動(dòng)端自適應(yīng)7. dockerfile - [docker build image失敗- npm install]8. atom開始輸入!然后按tab只有空格出現(xiàn)沒有html格式出現(xiàn)9. 關(guān)于docker下的nginx壓力測試10. Mysql如何按照日期對比數(shù)據(jù),求SQL語句
