2

Google App Engine Python Flexible Environment에 과부하가 발생하는 경우 유연한 서비스를 실행합니다. 나는 PSQ workers to handle tasks through Pub/Sub을 달린다.Google Cloud Python 유연한 환경 다중 스레드 데이터베이스 작업자 동결

단일 스레드 작업자로 작업하는 한이 모든 것이 훌륭하고 멋쟁이입니다. 잘 작동 ...

entity = _client.get(_client.key('EntityKind', 1234)) 

:

from google.cloud import datastore 
_client = datastore.Client(project='project-name-kept-private') 

을 ... 그리고 엔티티를 검색 : 단일 스레드 노동자, 나는 데이터 스토어 클라이언트과 같이 인스턴스화합니다. 나는 그것이 때문에 사용자 logging.error 전과 그 후이 라인에 정확히 실패 알고

entity = _client.get(_client.key('EntityKind', 1234)) 

: 나는 다중 스레드 직원이 똑같은 일을하면

그러나, 그것은 마지막 줄에 정지 그래서 같은 특정 라인 :

import logging 
logging.error('entity test1') 
entity = _client.get(_client.key('EntityKind', 1234)) 
logging.error('entity test2') 

entity test1entity test2 모두 단일 스레드 작업자 로그에 표시 줄 만 entity test1은 다중 스레드 노동자에 인쇄됩니다. 그 일을 끝내지는 못합니다. 단지 그 행에 붙어 있습니다.

오른쪽 방향의 조언이나 조언이 도움이 될 것입니다. 나는이 문제로 꽤 오랫동안 고심하고있다.

답변

0

'datastore_client'가 api 클라이언트를 구성 할 때 문제가 무엇인지 알아 냈습니다. 기본값은 gRPC입니다.
멀티 스레드 작업자를 사용하는 경우이 작업이 중단됩니다.
환경 변수에서 GOOGLE_CLOUD_DISABLE_GRPCTrue으로 설정하면 강제로 HTTPDatastoreAPI을 사용하게됩니다. 이게 내 문제를 고쳤다.