classNonBlockingProcess extends Actor with ActorLogging
NonBlockingProcess encapsulates an operating system process and its ability to be communicated with via stdio i.e.
stdin, stdout and stderr. The reactive streams for stdio are communicated in a NonBlockingProcess.Started event
upon the actor being established. The parent actor is then subsequently streamed
stdout and stderr events. When the process exists (determined by periodically polling process.isAlive()) then
the process's exit code is communicated to the receiver in a NonBlockingProcess.Exited event.
All IO is performed in a non-blocking manner. Herein lies the difference between BlockingProcess and this
actor. As such, many more processes can be managed via this while consuming *much* less memory on your JVM.
Always favour this actor over its blocking counterpart.
NonBlockingProcess encapsulates an operating system process and its ability to be communicated with via stdio i.e. stdin, stdout and stderr. The reactive streams for stdio are communicated in a NonBlockingProcess.Started event upon the actor being established. The parent actor is then subsequently streamed stdout and stderr events. When the process exists (determined by periodically polling process.isAlive()) then the process's exit code is communicated to the receiver in a NonBlockingProcess.Exited event.
All IO is performed in a non-blocking manner. Herein lies the difference between BlockingProcess and this actor. As such, many more processes can be managed via this while consuming *much* less memory on your JVM. Always favour this actor over its blocking counterpart.