object AskPattern

The ask-pattern implements the initiator side of a request–reply protocol.

Note that if you are inside of an actor you should prefer ActorContext.ask as that provides better safety.

The party that asks may be within or without an Actor, since the implementation will fabricate a (hidden) ActorRef that is bound to a CompletableFuture. This ActorRef will need to be injected in the message that is sent to the target Actor in order to function as a reply-to address, therefore the argument to the ask method is not the message itself but a function that given the reply-to address will create the message.

Source
AskPattern.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AskPattern
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. def ask[Req, Res](actor: RecipientRef[Req], messageFactory: [ActorRef[Res], Req], timeout: Duration, scheduler: Scheduler): CompletionStage[Res]

    Req

    The request protocol, what the other actor accepts

    Res

    The response protocol, what the other actor sends back

  2. def askWithStatus[Req, Res](actor: RecipientRef[Req], messageFactory: [[StatusReply[Res]], Req], timeout: Duration, scheduler: Scheduler): CompletionStage[Res]

    The same as but only for requests that result in a response of type akka.pattern.StatusReply.

    The same as but only for requests that result in a response of type . If the response is a the returned future is completed successfully with the wrapped response. If the status response is a the returned future will be failed with the exception in the error (normally a akka.pattern.StatusReply.ErrorMessage).