Package

jabroni.api

exchange

Permalink

package exchange

Visibility
  1. Public
  2. All

Type Members

  1. case class BlockingSubmitJobResponse(matchId: MatchId, jobId: JobId, matchEpochUTC: Long, workerCoords: List[WorkerRedirectCoords], workers: List[WorkerDetails]) extends ClientResponse with Product with Serializable

    Permalink
  2. case class CancelJobs(ids: Set[JobId]) extends ClientRequest with Product with Serializable

    Permalink
  3. case class CancelJobsResponse(canceledJobs: Map[JobId, Boolean]) extends ClientResponse with Product with Serializable

    Permalink
  4. case class CancelSubscriptions(ids: Set[worker.SubscriptionKey]) extends ClientRequest with Product with Serializable

    Permalink
  5. case class CancelSubscriptionsResponse(canceledSubscriptions: Map[worker.SubscriptionKey, Boolean]) extends ClientResponse with Product with Serializable

    Permalink
  6. sealed trait ClientRequest extends AnyRef

    Permalink

    A 'client' represents something which submits work to the exchange

  7. sealed trait ClientResponse extends AnyRef

    Permalink
  8. trait Exchange extends AnyRef

    Permalink

    An exchange supports both 'client' requests (e.g.

    An exchange supports both 'client' requests (e.g. offering and cancelling work to be done) and work subscriptions

  9. trait InputDao[T] extends AnyRef

    Permalink
  10. trait JobPredicate extends AnyRef

    Permalink

    Exposes the course-grained signature of pairing up jobs with worker subscriptions

  11. trait MatchObserver extends OnMatch with StrictLogging

    Permalink

    Represents a match 'handler' which delegates out to other observers

  12. case class PendingSubscription(key: worker.SubscriptionKey, subscription: WorkSubscription, requested: Int) extends Product with Serializable

    Permalink
  13. case class QueuedState(workerSubscriptionMatcher: JMatcher = JMatcher.matchAll, submitJobMatcher: JMatcher = JMatcher.matchAll, submitJobSubmissionDetailsMatcher: JMatcher = JMatcher.matchAll) extends ClientRequest with Product with Serializable

    Permalink

    Queries the exchange for a fiew of the pending jobs and subscriptions

    Queries the exchange for a fiew of the pending jobs and subscriptions

    workerSubscriptionMatcher

    the same as what a SubmitJob matcher would be, used to match work subscriptions

    submitJobMatcher

    the same as a subscription matcher would be, used to match submitted job requsts

    submitJobSubmissionDetailsMatcher

    also as per a subscription matcher, this time matching the submissionDetails

  14. case class QueuedStateResponse(jobs: List[SubmitJob], subscriptions: List[PendingSubscription]) extends ClientResponse with Product with Serializable

    Permalink
  15. case class RequestWork(id: worker.SubscriptionKey, itemsRequested: Int) extends SubscriptionRequest with Product with Serializable

    Permalink
  16. case class RequestWorkAck(id: worker.SubscriptionKey, totalItemsPending: Int) extends SubscriptionResponse with Product with Serializable

    Permalink
  17. case class SelectIntMax(path: JPath) extends SelectionMode with Product with Serializable

    Permalink
  18. case class SelectN(n: Int, fanOut: Boolean) extends SelectionMode with Product with Serializable

    Permalink
  19. case class SelectionAll() extends SelectionMode with Product with Serializable

    Permalink
  20. case class SelectionFirst() extends SelectionMode with Product with Serializable

    Permalink
  21. abstract class SelectionMode extends AnyRef

    Permalink
  22. case class ServerSideExchange(underlying: Exchange, observer: MatchObserver = MatchObserver()) extends Exchange with Product with Serializable

    Permalink

    Adds a special type for local exchanges.

    Adds a special type for local exchanges. also exposing a means to observe jobs

  23. case class SubmissionDetails(aboutMe: Json, selection: SelectionMode, workMatcher: JMatcher, awaitMatch: Boolean) extends JsonAppendable with Product with Serializable

    Permalink

    Contains instructions/information specific to the job scheduling/matching

  24. case class SubmitJob(submissionDetails: SubmissionDetails, job: Json) extends ClientRequest with Product with Serializable

    Permalink

    Represents anything which can be run as a job

    Represents anything which can be run as a job

    Json is a bit prescriptive, but that's going to cover 95% of the cases. Even if we have binary data, we can base64 encode it as an option.

    If we end up doing a lot of data transfer, then we can change the job representation to be an akka Source

    job

    represents the job submission. As the job repo is heterogeneous, it could match anything really that's asking for work

  25. case class SubmitJobResponse(id: JobId) extends ClientResponse with Product with Serializable

    Permalink
  26. sealed trait SubscriptionRequest extends AnyRef

    Permalink
  27. sealed trait SubscriptionResponse extends AnyRef

    Permalink
  28. case class WorkSubscription(details: WorkerDetails = WorkerDetails(), jobMatcher: JMatcher = JMatcher.matchAll, submissionMatcher: JMatcher = JMatcher.matchAll) extends SubscriptionRequest with Product with Serializable

    Permalink

    The details contain info about the worker subscribing to work, such as it's location (where work should be sent to), and any arbitrary json data it wants to expose (nr of CPUs, runAs user, available memory, OS, a 'topic', etc)

    The details contain info about the worker subscribing to work, such as it's location (where work should be sent to), and any arbitrary json data it wants to expose (nr of CPUs, runAs user, available memory, OS, a 'topic', etc)

    Once a WorkSubscription is sent

    jobMatcher

    the json matcher used against the 'job' portion of SubmitJob

    submissionMatcher

    the json matcher used against the additional 'details' part of SubmitJob

  29. case class WorkSubscriptionAck(id: worker.SubscriptionKey) extends SubscriptionResponse with Product with Serializable

    Permalink

Value Members

  1. object BlockingSubmitJobResponse extends Serializable

    Permalink
  2. object CancelJobs extends Serializable

    Permalink
  3. object Exchange

    Permalink
  4. object InputDao

    Permalink
  5. object JobPredicate extends StrictLogging

    Permalink
  6. object MatchObserver

    Permalink
  7. object QueuedState extends Serializable

    Permalink
  8. object QueuedStateResponse extends Serializable

    Permalink
  9. object RequestWork extends Serializable

    Permalink
  10. object RequestWorkAck extends Serializable

    Permalink
  11. object SelectionMode

    Permalink
  12. object SubmissionDetails extends Serializable

    Permalink
  13. object SubmitJob extends Serializable

    Permalink
  14. object SubmitJobResponse extends Serializable

    Permalink
  15. object WorkSubscription extends Serializable

    Permalink
  16. object WorkSubscriptionAck extends Serializable

    Permalink

Ungrouped