J'essaye d'implémenter le moteur de calcul distribué asynchrone pour python, qui est compatible avec le cahier de jupyter. Le système est censé être basé sur une approche de "notification push" ce qui rend (presque, je l'espère) impossible de permettre à l'utilisateur d'attendre un résultat de calcul spécifique (c'est-à-dire bloquer l'exécution d'une cellule portable donnée). Pour être précis, je suis en train de:Bloc jupyter portable exécution de la cellule jusqu'à un message spécifique reçu
- Ajouter une nouvelle tâche à jupyter boucle d'événements portable (la tâche est de vérifier périodiquement si msg spécifique est arrivé en boucle while, des pauses quand msg sont arrivés)
- bloc cellule en cours attendre que la tâche soit terminée.
- encore en mesure de traiter les messages entrants (en utilisant RabbitMQ, Pika, le code légèrement modifié par http://pika.readthedocs.io/en/0.10.0/examples/asynchronous_consumer_example.html)
J'ai préparé des cahiers présentant mon problème: https://github.com/SLEEP-MAN/RabbitMQ_jupyterNotebook_asyncio
Toutes les idées? Est-ce possible (peut-être une magie IPython/IpyKernel;?), Ou je dois changer mon approche de 180 degrés?
Ajout d'une réponse de test, s'il vous plaît jeter un oeil –