Threading and multiprocessing eye-candy.
Project description
Description
Pebble provides a neat API to manage threads and processes within an application.
Examples
Run a job in a separate thread and wait for its results:
from pebble import concurrent @concurrent.thread def function(foo, bar=0): return foo + bar future = function(1, bar=2) result = future.result() # blocks until results are ready
Run a function with a timeout of ten seconds and deal with errors:
from pebble import concurrent @concurrent.process(timeout=10) def function(foo, bar=0): return foo + bar future = function(1, bar=2) try: result = future.result() # blocks until results are ready except Exception as error: print("Function raised %s" % error) print(error.traceback) # traceback of the function except TimeoutError as error: print("Function took longer than %d seconds" % error.args[1])
Pools support workers restart, timeout for long running tasks and more:
from pebble import ProcessPool def function(foo, bar=0): return foo + bar def task_done(future): try: result = future.result() # blocks until results are ready except Exception as error: print("Function raised %s" % error) print(error.traceback) # traceback of the function except TimeoutError as error: print("Function took longer than %d seconds" % error.args[1]) with ProcessPool(max_workers=5, max_tasks=10) as pool: for i in range(0, 10): future = pool.schedule(function, args=[i], timeout=3) future.add_done_callback(task_done)
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
Pebble-4.2.1.tar.gz
(19.6 kB
view hashes)
Built Distribution
Pebble-4.2.1-py2.py3-none-any.whl
(20.8 kB
view hashes)
Close
Hashes for Pebble-4.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e580c2f65fe32dcaacb2a4f25ef5bb55f4062f14fabc9674c3bd9a79eb9c994 |
|
MD5 | 43a4b1dafa66d6d0929c81651ac52afa |
|
BLAKE2b-256 | 2f2dc84dea14853c8be8f104a33e341fd09f88d8de3ebf14c17f97d82c8ede4e |