Package

agora.exec

run

Permalink

package run

Visibility
  1. Public
  2. All

Type Members

  1. abstract class CachingRunner extends ProcessRunner with StrictLogging

    Permalink
  2. case class ExecutionClient(client: RestClient, defaultFrameLength: Int, allowTruncation: Boolean)(implicit uploadTimeout: FiniteDuration) extends UploadClient with AutoCloseable with Product with Serializable

    Permalink

    A client of the agora.exec.rest.ExecutionRoutes and agora.exec.rest.UploadRoutes

  3. class LocalRunner extends ProcessRunner with StrictLogging

    Permalink

    Something which can execute RunProcess

  4. trait ProcessRunner extends AnyRef

    Permalink

    represents something which can be run, either locally or remotely.

    represents something which can be run, either locally or remotely. Just adds the concept of an 'upload' to scala sys process really

  5. case class RemoteRunner(exchange: ExchangeClient, defaultFrameLength: Int, allowTruncation: Boolean, requestWorkOnFailure: Boolean, keyOpt: Option[SubscriptionKey] = None)(implicit uploadTimeout: FiniteDuration) extends ProcessRunner with AutoCloseable with FailFastCirceSupport with LazyLogging with Product with Serializable

    Permalink

    A client of the ExecutionRoutes

  6. case class SelectionOutput(subscription: SubscriptionKey, location: HostLocation, runner: RemoteRunner, uploader: UploadClient, output: Iterator[String]) extends UploadClient with Product with Serializable

    Permalink

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

    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

    output

    the result of the execution

  7. trait UploadClient extends FailFastCirceSupport

    Permalink

    Something with can upload data via a RestClient

Value Members

  1. object CachingRunner

    Permalink
  2. object ExecutionClient extends RequestBuilding with Serializable

    Permalink
  3. object ProcessRunner

    Permalink
  4. object RemoteRunner extends RequestBuilding with Serializable

    Permalink
  5. object UploadClient extends RequestBuilding

    Permalink

Ungrouped