c++ - 如何在python的阻塞的函数中获取变量值
迷茫
迷茫 2017-06-17 09:15:52
[C++讨论组]

目前是使用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)
高洛峰

处于堵塞的函数, 都需要等到收到数据或者等待超时才能返回的, 如果你想要快点返回, 就采用不堵塞的方式咯,只不过这样会比较蛋疼

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号