ah i had misread that code as well. i wasn't paying attention to what
you were doing with the result of the flatMap, i thought you were just
side-effecting.
are you sure you are executing the body of persistance.flatMap()?
perhaps its an empty sequence. what happens if you add some simple
logging around the ask()? or print insertionResult after the flatMap?
-Michael
On 06/23/15 13:36, Edmondo Porcu wrote:
Sorry I should have posted more code. I am using it: I am converting
the future into a scalaz.Task and then sequencing a Seq[Task[T]] to
get a Task[Seq[T]] . However the ask is not sending the message, it's
trivial to detect because wrapped into the LoggingReceive the receive
method of my target actor.
valbatchesInsertionResult=batchesmap {
recordBatch=>recordBatchmap {
records=>
valsuccesses=recordscollect {case\/-(x) =>x}
valfailures=recordscollect{case-\/(x) =>x}
valinsertionResult= persistance flatMap {
x=>x.ask(UpdateIntradayRecordsRequest(successes))(timeout)
}
asTask(insertionResult) flatMap{
casex:IntradayRecordsUpdateResult=>Tasknow(successes,failures,\/-(x))
caseother=>Tasknow(successes,failures,-\/(newIllegalArgumentException(s"The result of
injection " s"of$successes is$other, which is not of expected type
IntradayRecordsUpdateResult ")))
}
}
}
valinsertionResult=for{
r1<-batchesInsertionResult
r2<-TaskgatherUnorderedr1.toSeq
}yield{
valparseIntradayBatchResult= r2.zipWithIndex.map {
case(entry,idx)
=>ParseIntradayRecordBatchResult(entry._1,entry._2,idx,entry._3)
}
ParseIntradayRecordResult(folder,parseIntradayBatchResult)
}
insertionResult.runAsync{
case\/-(x)=>requestor!x
case-\/(y) =>println("hello world")}
Il giorno martedì 23 giugno 2015 21:22:07 UTC+1, Michael Frank ha
scritto:
ask() returns a Future, but you aren't doing anything with it. if
you want to send the result of the Future as a message back to the
actor, then you should use the pipe pattern:
import akka.pattern.pipe
x.ask(UpdateIntradayRecordsRequest(successes))(timeout).pipeTo(self)
see:
http://doc.akka.io/docs/akka/2.3.11/scala/futures.html#Use_With_Actors
<http://doc.akka.io/docs/akka/2.3.11/scala/futures.html#Use_With_Actors>
-Michael
On 06/23/15 13:07, Edmondo Porcu wrote:
Good morning,
inside an Actor I have a complex patterns and my ASK is never
returning the result.
valbatches:Future[Iterator[A]] = ...
valbatchesInsertionResult=batchesmap {
recordBatch=>recordBatchmap {
records=>
valsuccesses=recordscollect {case\/-(x) =>x}
valfailures=recordscollect{case-\/(x) =>x}
valinsertionResult= persistance flatMap {
x=>x.ask(UpdateIntradayRecordsRequest(successes))(timeout)
}
}
}
I have wrapped my actors in the LoggingReceive and my
UpdateIntradayRecordsRequest is never delivered to the actor.
What could be the reason for it to fail? Is there something
preventing to call ASK from outside the Actor loop?
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
http://doc.akka.io/docs/akka/current/additional/faq.html
<http://doc.akka.io/docs/akka/current/additional/faq.html>
>>>>>>>>>> Search the archives:
https://groups.google.com/group/akka-user
<https://groups.google.com/group/akka-user>
---
You received this message because you are subscribed to the
Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected] <javascript:>.
To post to this group, send email to [email protected]
<javascript:>.
Visit this group at http://groups.google.com/group/akka-user
<http://groups.google.com/group/akka-user>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google
Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.
--
Read the docs: http://akka.io/docs/
Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.