Class

agora.exec.client

SelectionOutput

Related Doc: package client

Permalink

case class SelectionOutput(subscription: SubscriptionKey, location: HostLocation, runner: RemoteRunner, uploader: UploadClient, result: Future[RunProcessResult]) extends UploadClient with Product with Serializable

A data structure containing the result of an execution via the RemoteRunner.

The use-case driving this is to have a consistent, 'sticky-session' type workflow with a single worker which could still be either load-balanced via the exchange or targeted directly for subsequent requests.

The workflow used to produce a 'SelectionOutput' is this:

1) a job is submitted to the agora.api.exchange.Exchange 2) the job gets matched with some worker taking subscriptions. 3) we want to remember that worker, as well as proceed with executing the job from step 1

The SelectionOutput is the 'remembering' of that worker -- allowing us to submit using the same subscription (runner)

subscription

the subscription id of the remote runner

runner

the remote runner which will match a worker based on the subscription

uploader

an uploader which can be used to upload data to the worker represented by the runner

result

the result of the execution

Linear Supertypes
Serializable, Serializable, Product, Equals, UploadClient, FailFastCirceSupport, FailFastUnmarshaller, BaseCirceSupport, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SelectionOutput
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. UploadClient
  7. FailFastCirceSupport
  8. FailFastUnmarshaller
  9. BaseCirceSupport
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SelectionOutput(subscription: SubscriptionKey, location: HostLocation, runner: RemoteRunner, uploader: UploadClient, result: Future[RunProcessResult])

    Permalink

    subscription

    the subscription id of the remote runner

    runner

    the remote runner which will match a worker based on the subscription

    uploader

    an uploader which can be used to upload data to the worker represented by the runner

    result

    the result of the execution

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. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def client: RestClient

    Permalink

    returns

    the rest client used to upload

    Definition Classes
    SelectionOutputUploadClient
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def deleteWorkspace(workspaceId: WorkspaceId): Future[Boolean]

    Permalink
    Definition Classes
    SelectionOutputUploadClient
  8. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  9. def finalize(): Unit

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

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

    Permalink
    Definition Classes
    Any
  12. implicit final def jsonMarshaller(implicit printer: Printer): ToEntityMarshaller[Json]

    Permalink
    Definition Classes
    BaseCirceSupport
  13. implicit final val jsonUnmarshaller: FromEntityUnmarshaller[Json]

    Permalink
    Definition Classes
    BaseCirceSupport
  14. val location: HostLocation

    Permalink
  15. implicit final def marshaller[A](implicit arg0: Encoder[A], printer: Printer): ToEntityMarshaller[A]

    Permalink
    Definition Classes
    BaseCirceSupport
  16. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  19. val result: Future[RunProcessResult]

    Permalink

    the result of the execution

  20. val runner: RemoteRunner

    Permalink

    the remote runner which will match a worker based on the subscription

  21. val subscription: SubscriptionKey

    Permalink

    the subscription id of the remote runner

  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  23. implicit final def unmarshaller[A](implicit arg0: Decoder[A]): FromEntityUnmarshaller[A]

    Permalink
    Definition Classes
    FailFastUnmarshaller
  24. def unmarshallerContentTypes: Seq[ContentTypeRange]

    Permalink
    Definition Classes
    BaseCirceSupport
  25. def upload(workspaceId: WorkspaceId, fileName: String, len: Long, src: Source[ByteString, Any], contentType: ContentType = ContentTypes.`text/plain(UTF-8)`)(implicit timeout: FiniteDuration): Future[Boolean]

    Permalink

    upload some data to a 'workspace' (e.g.

    upload some data to a 'workspace' (e.g. consistent session/directory)

    workspaceId

    the workspace to which the data will be uploaded

    fileName

    the file name

    len

    the length of the source data to upload

    src

    the data source of the data to upload

    contentType

    the content type of the data

    timeout

    the timeout used to marshal the data into a request

    returns

    a future of a success flag

    Definition Classes
    SelectionOutputUploadClient
  26. final def upload(workspaceId: WorkspaceId, file: Upload)(implicit mat: Materializer, timeout: FiniteDuration): Future[Boolean]

    Permalink

    Convenience method to upload a file

    Convenience method to upload a file

    workspaceId

    the workspace (e.g. directory) where this should be uploaded

    file

    the data to upload

    timeout

    the timeout used to marshal the request

    returns

    a future containing a success flag

    Definition Classes
    UploadClient
  27. val uploader: UploadClient

    Permalink

    an uploader which can be used to upload data to the worker represented by the runner

  28. final def wait(): Unit

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

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

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

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from UploadClient

Inherited from FailFastCirceSupport

Inherited from FailFastUnmarshaller

Inherited from BaseCirceSupport

Inherited from AnyRef

Inherited from Any

Ungrouped