메서드 매개 변수를 사용하지 않고 비동기 메서드 호출에서 다른 메서드로 컨텍스트를 전달할 수 있습니까?파이썬 3.5에서 비동기 메서드 호출간에 컨텍스트를 전달하는 방법은 무엇입니까?
로그 메시지를 일종의 흐름 ID로 보완하여 특정 호출 방법 흐름의 모든 로그 메시지를 쉽게 추적 할 수있는 기능이 필요합니다.
저는 파이썬의 비동기를 사용하고 키워드 (Python 3.5.x)를 기다리고 있습니다.
메서드 매개 변수를 사용하지 않고 비동기 메서드 호출에서 다른 메서드로 컨텍스트를 전달할 수 있습니까?파이썬 3.5에서 비동기 메서드 호출간에 컨텍스트를 전달하는 방법은 무엇입니까?
로그 메시지를 일종의 흐름 ID로 보완하여 특정 호출 방법 흐름의 모든 로그 메시지를 쉽게 추적 할 수있는 기능이 필요합니다.
저는 파이썬의 비동기를 사용하고 키워드 (Python 3.5.x)를 기다리고 있습니다.
맞춤 설정하여 문제를 해결했습니다. task factory 작업 당 컨텍스트 (비동기 호출 당 컨텍스트와 비교할 때)가 충분하다는 것이 밝혀졌습니다.
파이썬 3.7에 도입 된 Context Variables을 사용하고 파이썬 < 3.7에 대한 폴리 필을 aiocontextvars으로 사용해야합니다.
이전 대답은 :
당신은 tasklocals 및 aiolocals에서 살펴 봐야 할 수 있습니다.
저는 aiotask-context package으로 일하고 있습니다. 이는 작업간에 컨텍스트를 전달하는 매우 간단한 방법입니다 (await
또는 yield from
이라고 함). 패키지를 사용하지 않으려 고해도 여전히 아이디어를 사용할 수 있습니다 :).
나는 ensure_future
호출을 위해 전파하는 방법도 연구 중이다.
흥미 롭군요, 그것에 대해 몰랐습니다 :) – argaen