pub struct Worker { /* private fields */ }Expand description
A persistent Python worker process with explicit state machine lifecycle.
Implementations§
Source§impl Worker
impl Worker
Sourcepub async fn spawn(
python_path: &PathBuf,
id: usize,
working_dir: &PathBuf,
) -> Result<Self>
pub async fn spawn( python_path: &PathBuf, id: usize, working_dir: &PathBuf, ) -> Result<Self>
Spawn a new worker process.
The worker is created in Spawning state and transitions to Ready
after successfully receiving the ready signal from the worker script.
Sourcepub async fn run_tests(&mut self, tests: Vec<String>) -> Result<Vec<TestResult>>
pub async fn run_tests(&mut self, tests: Vec<String>) -> Result<Vec<TestResult>>
Run tests and return results.
Requires the worker to be in Ready state. Transitions to Busy during
execution, then back to Ready on success or Recycling on error.
Sourcepub fn needs_recycle(&self) -> bool
pub fn needs_recycle(&self) -> bool
Check if the worker needs recycling (too many runs).
Sourcepub fn is_alive(&mut self) -> bool
pub fn is_alive(&mut self) -> bool
Check if the worker is still alive.
Also updates state to Dead if the process has exited.
Sourcepub fn state(&self) -> &WorkerState
pub fn state(&self) -> &WorkerState
Get the current state of the worker.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Worker
impl !UnwindSafe for Worker
impl Freeze for Worker
impl Send for Worker
impl Sync for Worker
impl Unpin for Worker
impl UnsafeUnpin for Worker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more