Comment obtenir une valeur variable dans la fonction de blocage en python
迷茫
迷茫 2017-06-17 09:15:52
0
1
937

Actuellement, la fonction python intégrée en C++ est utilisée.
La fonction python est un type de blocage de la réception des messages du serveur.
Il n'y aura aucune valeur de retour jusqu'à la fin de la surveillance.
Lorsqu'un message est reçu pendant la surveillance, une fonction de rappel de python. sera appelé pour obtenir le message reçu
Alors comment renvoyer les messages en C++

EDIT :
Le code est le suivant. L'impression de rappel peut imprimer des données correctes. Le problème est que
le client RabbitMQ écrit à l'aide de la bibliothèque pika ici doit éviter d'utiliser la
bibliothèque RabbitMQ C
Il est désormais envisagé d'utiliser C pour écrivez un module réglable en python
Ensuite, je l'appelle dans la fonction de rappel, mais cela semble un peu moche.

#!/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()
迷茫
迷茫

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

répondre à tous(1)
小葫芦

Une fonction bloquée doit attendre de recevoir des données ou d'attendre un délai avant de revenir. Si vous souhaitez revenir rapidement, utilisez une méthode non bloquante, mais ce sera plus pénible

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal