2015-05-27 3 views
6

Precedentemente stavo usando Java Future object e Await.result per recuperare la risposta da un attore Akka. Questo mi ha permesso di creare un ponte tra la base di codice Java 6 e Akka.Quando scegliere tra l'uso di Actor Inbox o Futures in attesa di risposta?

Svantaggi: Discussioni blocco durante le attività di lunga esecuzione

mi sono trasferito a Java 8 e stava guardando facendo uso di non-blocking supporto per sostituire il Await.Result con un callback. In teoria questo funzionerà bene. Tuttavia noto nell'ultima versione del tutorial Typesafe HelloAkka con Java 8 che Akka Inbox è usato per gestire la risposta piuttosto che Future;

  • La posta in arrivo utilizza l'opzione preferita su Future?
  • Quando sarebbe Futuro (o Futuro Completo) essere un'opzione migliore?
+1

Si prega di vedere ["Le domande dovrebbero includere" tag "nei loro titoli?"] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), dove il consenso è "no, non dovrebbero"! –

risposta

0

Entrambe le risposte in questo contesto aggiunto post Stackoverflow che potrebbero rispondere alla domanda. Inbox (a mia conoscenza) è semplicemente un'alternativa all'utilizzo di future e alla chiamata di altri attori, invece si consente ad altri attori di interrogare la propria casella di posta (oggetto simile ad attori) dall'esterno ... vedere this. Inoltre, dai un'occhiata al patter "Cameo" di Jamie Allen. Ho pubblicato un esempio grezzo su this Post Stackoverflow.

0

se vuoi fare un ponte con il mondo esterno, come intendi usare la casella di posta ?? Immagino che tutto quello che hai sia un riferimento per l'attore.

prendere in cose considerazione come

  • quanto tempo si può attendere per la risposta
  • riproduzione non può mai tornare indietro - come reagire a che
  • lettura su interruttori che custodisce il codice cliente con possibili errori con i servizi (qui sistema akka)

Avrei scelto l'interfaccia CompletableFuture di java come interfaccia e tradurrei il futuro di akka dopo aver chiesto o comunicato l'operazione.