from contextvars import ContextVar

import asyncio
import random

cv = ContextVar('cv')


async def waiting_func(name):
    print(f'{name} Before sleep: {cv.get()}')
    await asyncio.sleep(random.random())
    print(f'{name} After 1 sleep: {cv.get()}')
    await asyncio.sleep(random.random())
    print(f'{name} After 2 sleep: {cv.get()}')


async def task(name):
    await waiting_func(name)


async def main():
    for name in ('first', 'second', 'third'):
        cvt = cv.set(name)
        await task(name)
        cv.reset(cvt)


if __name__ == '__main__':
    asyncio.run(main())

相关文章:

  • 2022-12-23
  • 2022-01-18
  • 2022-01-24
  • 2022-12-23
  • 2021-12-01
  • 2021-11-19
  • 2022-12-23
猜你喜欢
  • 2021-07-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-11
  • 2022-12-23
  • 2021-09-05
相关资源
相似解决方案