Je voudrais passer un acteur sérialisé avec son état à un autre acteur (afin qu'il puisse être migré à travers le réseau). Existe-t-il une API pour cela ou doit-on en créer une à partir de zéro?Est-ce que Akka prend en charge les acteurs d'ordre supérieur?
Répondre
Je crois que ce type de fonctionnalité est supporté par Remoting in Akka. Consultez ce lien, en particulier la section sur Déploiements à distance programmatique et voir si c'est ce que vous cherchez:
http://doc.akka.io/docs/akka/2.1.2/java/remoting.html
En outre, ActorRefs
sérialisables, de sorte que vous pouvez passer certainement un ActorRef
à un autre acteur sur une télécommande nœud, puis renvoyer un message à la référence que vous avez fournie, ce qui entraîne le retour du message au nœud de départ.
Encore une chose à laquelle penser. Vous ne pouvez pas passer une instance Actor
à un autre acteur, tout ce que vous pouvez réellement passer est le ActorRef
, qui est un handle léger pour rappeler à l'instance Actor
que l'arbitre représente. Si vous voulez vraiment migrer une instance d'acteur et son état vers un autre nœud, lisez en plus dans la fonctionnalité de déploiement à distance programmatique. Si vous souhaitez simplement communiquer entre deux instances d'acteur s'exécutant dans des noeuds séparés, utilisez ask (?)
pour obtenir le comportement demande/réponse (en utilisant le sender
var dans l'acteur récepteur pour renvoyer à l'acteur appelant, ou passez l'envoi ActorRef
(via context.self
) le long de via tell (!)
et ensuite utiliser cette référence dans l'acteur récepteur pour renvoyer un message
- 1. Est-ce que Play 2.3 prend en charge akka 2.3?
- 2. Distribué Acteurs dans Akka
- 3. Cluster Acteurs Akka/Scala
- 4. Recherche des acteurs Akka
- 5. Cas d'utilisation pour les acteurs Akka
- 6. gérer des acteurs uniques akka
- 7. Hibernate en utilisant des acteurs Akka
- 8. Akka Disjoncteur partage entre les acteurs
- 9. Conventions de nommage pour les messages et les acteurs Akka
- 10. Logging au sein Akka Testkit acteurs extérieurs
- 11. Comment enregistrer les exceptions non interceptées dans les acteurs Akka?
- 12. application.conf pour Scala SBT Akka Acteurs
- 13. Acteurs Akka ne recevant pas Array [Byte]?
- 14. Acteurs de Guice et Akka à Scala
- 15. Arrêter tous les acteurs Akka sur un système
- 16. Tâches de longue durée dans les acteurs AKKA
- 17. Comment imprimer tous les acteurs du système Akka?
- 18. Akka + Java: acteurs définir le nom tout en utilisant RoundRobinPool
- 19. Quel est le code minimal requis pour que deux instances locales communiquent avec les acteurs Akka?
- 20. Est-ce que Imagick prend en charge les dégradés radiaux?
- 21. Est-ce que vsee prend en charge les navigateurs mobiles?
- 22. Est-ce que Google Dart prend en charge les mixins?
- 23. Est-ce que MDA prend en charge les crochets Cordova?
- 24. Est-ce que SystemVerilog prend en charge les packages imbriqués?
- 25. Est-ce que Owin.AuthServices prend en charge les fournisseurs d'identité?
- 26. Est-ce que Avro prend en charge les champs obligatoires?
- 27. Est-ce que Cargo prend en charge les profils personnalisés?
- 28. Est-ce que Scalatest prend en charge les hypothèses?
- 29. couleurs que Apple prend en charge pour les boutons arrondis
- 30. Est-ce que Cassandra prend en charge les requêtes conditionnelles?
La réponse courte est non, mais la réponse la plus longue est d'utiliser la communication à distance par @cmbaxter Vous ne pouvez pas réellement envoyer un acteur c'est déjà créé mais vous pouvez créer un nouvel acteur à distance avec tous ses paramètres (état). – sourcedelica