Opencensus-context - PyPI

pypi

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 Threadfrom opencensus.common.runtime_context import RuntimeContextdef 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 ThreadPoolfrom opencensus.common.runtime_context import RuntimeContextdef work(name): # here you will get the context from the parent thread print(RuntimeContext)pool = ThreadPool(2)# propagate context explicitlypool.map(RuntimeContext.with_current_context(work), [ 'bear', 'cat', 'dog', 'horse', 'rabbit',])pool.close()pool.join()

References

  • Examples

  • OpenCensus Project

Từ khóa » C N K Python