package
exec
Type Members
-
class
ExecConfig extends WorkerConfig
-
-
class
ExecutionRoutes extends StrictLogging with FailFastCirceSupport
-
-
case class
OperationResult(messages: List[String]) extends Product with Serializable
-
case class
PathConfig(config: Config) extends Product with Serializable
-
case class
ProcessError(process: RunProcess, exitCode: Option[Int], matchDetails: Option[MatchDetails], stdErr: List[String]) extends Product with Serializable
-
case class
ProcessException(error: ProcessError) extends Exception with Product with Serializable
-
-
case class
RemoteRunner(exchange: ExchangeClient, defaultFrameLength: Int, allowTruncation: Boolean, requestWorkOnFailure: Boolean)(implicit mat: Materializer, uploadTimeout: FiniteDuration) extends ProcessRunner with AutoCloseable with FailFastCirceSupport with LazyLogging with Product with Serializable
-
case class
RunProcess(command: List[String], env: Map[String, String] = Map.empty, successExitCodes: Set[Int] = Set(0), frameLength: Option[Int] = None, errorMarker: String = "*** _-={ E R R O R }=-_ ***") extends Product with Serializable
-
case class
Upload(name: String, size: Long, source: Source[ByteString, Any], contentType: ContentType = ContentTypes.`text/plain(UTF-8)`) extends Product with Serializable
Inherited from AnyRef
Inherited from Any
This serves as a kind of example of how this whole jabroni stuff can be used.
We set up an 'RunProcess' requests, which just runs things on a worker node. The worker node can change its subscription to filter/configure what gets run.
The worker also exposes multiple handlers - one for executing a job which returns the jobs output, and another for being able to cancel a job based on a job id.