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.

Reply via email to