SubInterpreterExecutor¶
- class chancy.executors.sub.SubInterpreterExecutor(worker, queue)[source]¶
Bases:
ConcurrentExecutorNote
This executor is experimental and may not work as expected. The sub-interpreter features it is built on is experimental and only available in Python 3.13 (with a backport) and >3.14.
To use with 3.13, run:
pip install chancy[sub]
To use this executor, simply pass the import path to this class in the
executorfield of your queue configuration or use theExecutorshortcut:async with Chancy("postgresql://localhost/postgres") as chancy: await chancy.declare( Queue( name="default", executor=Chancy.Executor.SubInterpreter, ) )
It’s important to note that many C-based Python libraries are not (yet) compatible with sub-interpreters. If you encounter issues, you may need to switch to a different executor.
- Parameters:
- get_default_concurrency()[source]¶
Get the default concurrency level for this executor.
This method is called when the queue’s concurrency level is set to None. It should return the number of jobs that can be processed concurrently by this executor.
On Python 3.13+, defaults to the number of logical CPUs on the system plus 4. On older versions of Python, defaults to the number of CPUs on the system plus 4. This mimics the behavior of Python’s built-in ThreadPoolExecutor.
- Return type: