Trait

eu.shiftforward.adstax.tracking

TrackingListener

Related Doc: package tracking

Permalink

trait TrackingListener extends RabbitMQUtilAsync

Base trait containing functionality for consuming tracking events from an AdStax Event Tracker instance. The processing step is defined by a Props which creates worker actors able to process JSON events. The trait also allows configuring the number of workers to instantiate, providing support for parallel consuming of events.

Linear Supertypes
RabbitMQUtilAsync, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TrackingListener
  2. RabbitMQUtilAsync
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def actorRefFactory: ActorRefFactory

    Permalink

    The ActorRef factory, such as an ActorSystem or ActorContext, used to create the actors needed for tracking.

  2. implicit abstract def ec: ExecutionContext

    Permalink
  3. abstract def numProcessors: Int

    Permalink

    The number of worker actors to instantiate.

    The number of worker actors to instantiate. The instantiated workers will process events in parallel.

  4. abstract def processorProps: Props

    Permalink

    A Props encapsulating the creation of worker actors.

    A Props encapsulating the creation of worker actors. The actor should be able to receive and process JSON events in the form of spray.json.JsValue objects.

  5. abstract def rmqConfig: Config

    Permalink
    Definition Classes
    RabbitMQUtilAsync
  6. abstract def trackingConfig: Config

    Permalink

    The tracking configuration.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object AmqpDeliveryJsObject

    Permalink

    Extracts a JsObject from an Amqp Delivery message.

    Extracts a JsObject from an Amqp Delivery message.

    Usage:

    amqpDelivery match {
      case AmqpDeliveryJsObject(json) => json.convertTo[Something]
      case Delivery(_, _, _, bodyInBytes) => // will only match if the message is not a valid json object
    }
    Definition Classes
    RabbitMQUtilAsync
  5. object AmqpDeliveryString

    Permalink

    Extracts a String from an Amqp Delivery message.

    Extracts a String from an Amqp Delivery message.

    Usage:

    amqpDelivery match {
      case AmqpDeliveryString(string) => println(string)
    }
    Definition Classes
    RabbitMQUtilAsync
  6. object AmqpPublishJsObject

    Permalink

    Converts a AmqpPublishJsObject that receives a JsObject, to an Amqp.Publish.

    Converts a AmqpPublishJsObject that receives a JsObject, to an Amqp.Publish.

    Definition Classes
    RabbitMQUtilAsync
  7. object AmqpPublishString

    Permalink

    Converts a AmqpPublishString that receives a String, to an Amqp.Publish.

    Converts a AmqpPublishString that receives a String, to an Amqp.Publish.

    Definition Classes
    RabbitMQUtilAsync
  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. lazy val connectionOwner: ActorRef

    Permalink
    Definition Classes
    RabbitMQUtilAsync
  11. def createProducer(handlerActor: Option[ActorRef]): ActorRef

    Permalink

    Creates a producer.

    Creates a producer. When the broker has a connection to the channel, the handler actor will be notified that the producer is connected.

    handlerActor

    the actor to handle the channel state; it can receive the messages com.github.sstone.amqp.ChannelOwner.Disconnected, com.github.sstone.amqp.ChannelOwner.Connected or a com.github.sstone.amqp.Amqp.Error.

    returns

    the actor ref of the producer

    Definition Classes
    RabbitMQUtilAsync
  12. def createRpcClient(handlerActor: Option[ActorRef] = None): Future[ActorRef]

    Permalink

    Create a rpc client

    Create a rpc client

    handlerActor

    the actor to handle the channel state; it can receive the messages

    returns

    the rpc client actor ref

    Definition Classes
    RabbitMQUtilAsync
  13. def createRpcServer(exchangeName: String, routingKey: String, queueName: Option[String] = None, handlerActor: Option[ActorRef] = None, timeout: Option[FiniteDuration] = None)(server: (Delivery) ⇒ Future[ProcessResult])(implicit ec: ExecutionContext): Future[String]

    Permalink

    Setup a RpcServer asynchronously.

    Setup a RpcServer asynchronously. When the broker has a connection to the channel, the exchange and queues are declared and then it will start to process incoming messages.

    The queue name can be None to create a One-To-Many (all servers/processors handle the request) or specified for a One-To-Any (only one server/processor will handle the request).

    exchangeName

    the exchange name

    routingKey

    the routing key

    queueName

    the queue name

    handlerActor

    the actor to handle the channel state; it can receive the messages com.github.sstone.amqp.ChannelOwner.Disconnected, com.github.sstone.amqp.ChannelOwner.Connected or a com.github.sstone.amqp.Amqp.Error.

    timeout

    an optional message timeout to avoid filling up the queue with old, already ignored, responses

    server

    the function that processes an Delivery

    ec

    the implicit execution context

    returns

    the future with the queue name

    Definition Classes
    RabbitMQUtilAsync
  14. def createStashedProducer(): ActorRef

    Permalink

    Creates a producer which stashes messages until the producer is fully connected to the rmq.

    Creates a producer which stashes messages until the producer is fully connected to the rmq.

    returns

    the actor ref of the producer proxy.

    Definition Classes
    RabbitMQUtilAsync
  15. def declareExchange(exchangeName: String, exchangeType: String = "topic", handlerActor: Option[ActorRef] = None): Future[Unit]

    Permalink

    Declare an exchange asynchronously.

    Declare an exchange asynchronously. When the broker has a connection to the channel, the exchange will be declared.

    exchangeName

    the exchange name

    exchangeType

    the exchange type

    handlerActor

    the actor to handle the channel state; it can receive the messages com.github.sstone.amqp.ChannelOwner.Disconnected, com.github.sstone.amqp.ChannelOwner.Connected or a com.github.sstone.amqp.Amqp.Error.

    returns

    the future that completes this exchange declaration

    Definition Classes
    RabbitMQUtilAsync
  16. def declareQueue(exchangeName: String, routingKey: String, queueName: Option[String] = None, handlerActor: Option[ActorRef] = None, clientFacing: Boolean = false): Future[String]

    Permalink

    Declare a queue asynchronously.

    Declare a queue asynchronously. When the broker has a connection to the channel, the queue will be declared.

    exchangeName

    the exchange name

    routingKey

    the routing key

    queueName

    the queue name, pass None to generate one randomly

    handlerActor

    the actor to handle the channel state; it can receive the messages com.github.sstone.amqp.ChannelOwner.Disconnected, com.github.sstone.amqp.ChannelOwner.Connected or a com.github.sstone.amqp.Amqp.Error.

    clientFacing

    true if the queue will be read by an external client

    returns

    the future with the queue name

    Definition Classes
    RabbitMQUtilAsync
  17. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  18. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  19. lazy val exchangeName: String

    Permalink

    The name of the AMQP exchange from which the listener will consume events.

  20. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  21. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  22. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  23. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  24. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  25. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  26. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  27. def rmqActorRefFactory: ActorRefFactory

    Permalink
    Definition Classes
    TrackingListenerRabbitMQUtilAsync
  28. lazy val routingKey: String

    Permalink

    The routing key from which the listener will consume events.

  29. def setListeningConsumer(actor: ActorRef, exchangeName: String, routingKey: String, queueName: Option[String] = None, autodelete: Boolean = true, handlerActor: Option[ActorRef] = None, clientFacing: Boolean = false): Future[(ActorRef, String)]

    Permalink

    Bind a specific queue to a given actor asynchronously.

    Bind a specific queue to a given actor asynchronously. When the broker has a connection to the channel, the queue is declared and bound to the given actor.

    actor

    the actor which will listen to the queue

    exchangeName

    the exchange name

    routingKey

    the routing key

    queueName

    the queue name, pass None to generate one randomly

    autodelete

    if true, the queue will be destroyed when it is no longer used

    handlerActor

    the actor to handle the channel state; it can receive the messages com.github.sstone.amqp.ChannelOwner.Disconnected, com.github.sstone.amqp.ChannelOwner.Connected or a com.github.sstone.amqp.Amqp.Error.

    clientFacing

    true if the queue will be read by an external client

    returns

    the future with the consumer actor and the queue name

    Definition Classes
    RabbitMQUtilAsync
  30. def setListeningQueue(actor: ActorRef, exchangeName: String, routingKey: String, queueName: Option[String] = None, autodelete: Boolean = true, handlerActor: Option[ActorRef] = None, clientFacing: Boolean = false): Future[String]

    Permalink

    Bind a specific queue to a given actor asynchronously.

    Bind a specific queue to a given actor asynchronously. When the broker has a connection to the channel, the queue is declared and bound to the given actor.

    actor

    the actor which will listen to the queue

    exchangeName

    the exchange name

    routingKey

    the routing key

    queueName

    the queue name, pass None to generate one randomly

    autodelete

    if true, the queue will be destroyed when it is no longer used

    handlerActor

    the actor to handle the channel state; it can receive the messages com.github.sstone.amqp.ChannelOwner.Disconnected, com.github.sstone.amqp.ChannelOwner.Connected or a com.github.sstone.amqp.Amqp.Error.

    clientFacing

    true if the queue will be read by an external client

    returns

    the future with the queue name

    Definition Classes
    RabbitMQUtilAsync
  31. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  32. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  33. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from RabbitMQUtilAsync

Inherited from AnyRef

Inherited from Any

Ungrouped