Provides a thread safe resource pool
Project description
pyresourcepool
Github: https://github.com/bensonrodney/pyresourcepool
Simple thread-safe resource pool to wait and/or use a limited set of resources, where a resource is a python object.
An example use case, and the reason this module was created, is when there exists a queue of actions to be performed but on a limited number of resources. Workers take actions from the queue and pull resources from the resource pool, perform the action and return the resource to the pool. The worker then pulls the next action from the queue and another recourse and this continues until there are no more actions in the queue.
Basically, you create a resource pool with a list of objects and then processes in multiple threads can use those resources and return them to the pool when finished.
Example usage:
from pyresourcepool.pyresourcepool import ResourcePool
# create a list of instances of "SomeObjectClass" class
objects = [SomeObjectClass() for o in range(10)]
# create the resrouce pool
rp = RecourcePool(objects)
# using an object would normally be done in some worker thread
# but for this example we'll just do it here
# Using the with block will wait for a resource to be available, return that
# resource and once the with block is exited, the resource will be returned
# to the pool.
with rp.get_resource() as obj:
do_stuff_with_object(obj)
# at this point, outside the 'with' block, the object will have been
# returned to the object pool.
If a resource/object becomes invalid and should not be used again it can be removed from the pool with the pool's remove_resource(obj) method. An exception will be raised when the last resource is removed from the pool or when an attempt is made to get a resource from an empty pool.
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file PyResourcePool-0.1.8.tar.gz.
File metadata
- Download URL: PyResourcePool-0.1.8.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98c8f668dc5d0fa3536a35a9950879641fc0d04de5303f58ed185245ac4c4a7d
|
|
| MD5 |
00d7ebc4e2a7ed081646e86a1f52b7e7
|
|
| BLAKE2b-256 |
b2d96490372e37410c7853ffa1952507fdbd084fc85eb8ecd43ae3421c4a6c89
|
File details
Details for the file PyResourcePool-0.1.8-py3.6.egg.
File metadata
- Download URL: PyResourcePool-0.1.8-py3.6.egg
- Upload date:
- Size: 6.0 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da4c09a0f3977f356d790a76534f53aa526650b3d48254bafa551e0595a338d1
|
|
| MD5 |
1f06f6c6169ab4b32758bb1df60818cb
|
|
| BLAKE2b-256 |
bf75c1854a3e898820a6ae91fd6609ee6915f6bd709903443491915a4b8ff968
|
File details
Details for the file PyResourcePool-0.1.8-py3-none-any.whl.
File metadata
- Download URL: PyResourcePool-0.1.8-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f69ba82b1a5fdc8f003981c1a86e591884b4c72cc58149742c6b1c8ed8397a8e
|
|
| MD5 |
36e196a9b34f84db3b0bbd400bc254b7
|
|
| BLAKE2b-256 |
1d98c4a2da0061c589c2aff7a8ee86f60fae4328bf9464f55b815c6ae90ada52
|