process_executor package
Reusable multiprocessing execution support.
- class process_executor.ProcessExecutor(worker_factory=None, worker_count=4, start_method=None, *, worker_class=None, worker_args=None, worker_kwargs=None, logger=None)[ソース]
ベースクラス:
objectGeneric multiprocessing execution support.
The executor does not know device protocols, transports, or controller semantics. A worker can be created either from an existing
worker_factory(context)or directly from an existing controllerworker_class.worker_classexists so device-side controller classes do not need worker-specific wrappers merely to run under multiprocessing.- パラメータ:
worker_factory (Callable[[SharedContext], Any] | None) -- Callable that receives
SharedContextand returns one worker-local controller instance.worker_count (int) -- Number of worker processes kept ready.
start_method (str | None) -- Multiprocessing start method. If omitted, Python's platform default is used.
worker_class (Type[Any] | None) -- Existing controller class instantiated in each worker.
worker_args (Tuple[Any, ...] | None) -- Positional arguments passed to
worker_class.worker_kwargs (Dict[str, Any] | None) -- Keyword arguments passed to
worker_class.logger (Any) -- Parent-process logger retained by the executor. The logger is not passed into worker processes automatically.
Return the shared context for the parent controller.
- submit(handler, *args, **kwargs)[ソース]
Submit a handler job and immediately return its job ID.
- パラメータ:
handler (str)
args (Any)
kwargs (Any)
- 戻り値の型:
str
- wait(job_id, timeout_sec=None, interval_sec=0.01)[ソース]
Explicitly wait for one job and return its result.
- パラメータ:
job_id (str)
timeout_sec (float | None)
interval_sec (float)
- 戻り値の型:
Any
ベースクラス:
objectShared state and lock for worker processes.
- パラメータ:
jobs (MutableMapping[str, Any]) -- Shared mapping containing job metadata.
workers (MutableMapping[str, Any]) -- Shared mapping containing worker metadata.
state (MutableMapping[str, Any]) -- Shared mapping reserved for controller-specific shared state.
lock (Any) -- Process-safe lock shared by all workers.
Submodules
process_executor.executor module
Generic multiprocessing job executor.
- class process_executor.executor.ProcessExecutor(worker_factory=None, worker_count=4, start_method=None, *, worker_class=None, worker_args=None, worker_kwargs=None, logger=None)[ソース]
ベースクラス:
objectGeneric multiprocessing execution support.
The executor does not know device protocols, transports, or controller semantics. A worker can be created either from an existing
worker_factory(context)or directly from an existing controllerworker_class.worker_classexists so device-side controller classes do not need worker-specific wrappers merely to run under multiprocessing.- パラメータ:
worker_factory (Callable[[SharedContext], Any] | None) -- Callable that receives
SharedContextand returns one worker-local controller instance.worker_count (int) -- Number of worker processes kept ready.
start_method (str | None) -- Multiprocessing start method. If omitted, Python's platform default is used.
worker_class (Type[Any] | None) -- Existing controller class instantiated in each worker.
worker_args (Tuple[Any, ...] | None) -- Positional arguments passed to
worker_class.worker_kwargs (Dict[str, Any] | None) -- Keyword arguments passed to
worker_class.logger (Any) -- Parent-process logger retained by the executor. The logger is not passed into worker processes automatically.
Return the shared context for the parent controller.
- submit(handler, *args, **kwargs)[ソース]
Submit a handler job and immediately return its job ID.
- パラメータ:
handler (str)
args (Any)
kwargs (Any)
- 戻り値の型:
str
- wait(job_id, timeout_sec=None, interval_sec=0.01)[ソース]
Explicitly wait for one job and return its result.
- パラメータ:
job_id (str)
timeout_sec (float | None)
interval_sec (float)
- 戻り値の型:
Any