Simple asynchronous execution pool primitive for Python 3.6+
Project description
Expool
Simple asynchronous execution pool primitive.
You can think of it as of a threading.ThreadPool
for coroutines.
Usage
import asyncio
from expool import ExecutionPoolSimple
async def main():
pool = ExecutionPoolSimple(size=3) # size parameter sets the max amount of concurrent coroutines
async def some_job():
await asyncio.sleep(3)
await pool.add(some_job) # Returns immediately if the pool is not full.
await pool.add(some_job) # If the pool max size is reached, waits
# until one of the pool's coroutines finishes.
await pool.close() # wait for all of the jobs to finish.
You may also set a timeout for .close()
method:
await pool.close(timeout=10)
If the timeout is reached, ExecutionPoolSimple
cancels all remaining coroutines and returns.
You may also want to check out ExecutionPool
decorators:
ExecutionPoolMonitored
- a pool with periodical logging of the jobs inside the pool;ExecutionPoolCapped
- a pool with a limited lifespan.
Installation
pip install expool
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
expool-0.1.1.tar.gz
(4.3 kB
view details)
Built Distribution
File details
Details for the file expool-0.1.1.tar.gz
.
File metadata
- Download URL: expool-0.1.1.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.7 CPython/3.8.10 Linux/5.11.0-25-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34c218f46a345a18003eed14b3b20f1ab9ff4899213bdf16f944ea8e0bd1ba43 |
|
MD5 | 92315c89428e4e34803a5e1a0c353cd0 |
|
BLAKE2b-256 | 678197775d15ed08e98cc11b2ba2bb86746b23a0c77a790a73b5610de2fc7592 |
File details
Details for the file expool-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: expool-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.7 CPython/3.8.10 Linux/5.11.0-25-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27f545cd733316b2038d51025aede99180e8ae77f31a91cef8c5292ec9d1019d |
|
MD5 | ade99ee4763e374517c4d415311819af |
|
BLAKE2b-256 | 8b5e16e437da9cfaaae2dc859374dabc84c652af11cff9c7f1311a42f23ddfec |