J'essaie de construire un pont entre deux protocoles basés sur des bibliothèques existantes, essentiellement faire quelque chose en fonction de l'événement (comme transmettre un message, ou l'annoncer). Le problème est qu'une bibliothèque utilise la boucle Gevent et l'autre utilise la boucle Asyncio, donc je ne suis pas capable d'utiliser la fonctionnalité de boucle intégrée pour faire des actions signal/événement sur l'autre boucle, et fondamentalement pas moyen d'accéder à l'autre boucle.asyncio et gevent loops - comment communiquer les uns avec les autres?
Comment configurer la communication basée sur les événements entre eux? Je n'arrive pas à accéder à l'autre boucle depuis l'existant. J'ai envie de trop penser. Existe-t-il un moyen de le faire via le multithreading en partageant des objets entre des boucles?
Exemple de code:
import libraryBot1
import libraryBot2
bot1 = libraryBot1.Client()
bot2 = libraryBot2.Client()
@bot1.on('chat_message')
def handle_message(user, message_text):
bot2.send(message_text)
@bot2.on('send')
def handle_message(message_text):
print(message_text)
if __name__ == "__main__"
# If I login here, then its run_forever on behind the scenes
# So I cant reach second connection
bot1.login(username="username", password="password")
# Never reached
bot2.login(username="username", password="password")
Si je l'autre côté essaie d'utiliser multithreading, puis tous les deux sont mis en marche, mais ils ne peuvent pas accéder à l'autre (communiquer).
pouvez-vous ajouter le correspondant des morceaux de code? – jmunsch
Ajouté un exemple de code, j'espère que cela aide à comprendre mon problème. – dimon222