OpenCensus Runtime Context
Project description
The OpenCensus Runtime Context provides in-process context propagation. By default, thread local storage is used for Python 2.7, 3.4 and 3.5; contextvars is used for Python >= 3.6, which provides asyncio support.
Installation
This library is installed by default with opencensus, there is no need to install it explicitly.
Usage
In most cases context propagation happens automatically within a process, following the control flow of threads and asynchronous coroutines. The runtime context is a dictionary stored in a context variable when available, and in thread local storage otherwise.
There are cases where you may want to propagate the context explicitly:
Explicit Thread Creation
from threading import Thread from opencensus.common.runtime_context import RuntimeContext def work(name): # here you will get the context from the parent thread print(RuntimeContext) thread = Thread( # propagate context explicitly target=RuntimeContext.with_current_context(work), args=('foobar',), ) thread.start() thread.join()
Thread Pool
from multiprocessing.dummy import Pool as ThreadPool from opencensus.common.runtime_context import RuntimeContext def work(name): # here you will get the context from the parent thread print(RuntimeContext) pool = ThreadPool(2) # propagate context explicitly pool.map(RuntimeContext.with_current_context(work), [ 'bear', 'cat', 'dog', 'horse', 'rabbit', ]) pool.close() pool.join()
References
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 Distribution
Hashes for opencensus_context-0.1.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bfb461d18f1dd243420224603c71544d7ac888bb236cf0d0a58545942561478 |
|
MD5 | c0b5226cafb529f71d765542ee747993 |
|
BLAKE2-256 | f133990f1bd9e7ee770fc8d3c154fc24743a96f16a0e49e14e1b7540cc2fdd93 |