신호 모듈은 Google App Engine의 python 버전에서 지원되지 않으므로 메소드를 호출하고 메소드가 2 초 이내에 반환되지 않으면 예외를 throw/catch하는 가장 간단한 방법은 무엇입니까?Google App Engine의 Python 버전에서 특정 메소드의 허용 된 실행 시간을 어떻게 제한 할 수 있습니까?
답변
이 같은 데이터 저장소와 같은 RPC 호출에 대해 얘기하는 경우에는 기한 (create_rpc
참조)과 함께 RPC를 만들 수 있습니다, 데이터 저장소 기능 (db.get, db.put 등), 다음 캐치로 RPC를 전달 DeadlineExceededErrors
.
# Set a five-second timeout
rpc = db.create_rpc(deadline=5)
# A query:
query = YourModel.all().fetch(100, rpc=rpc)
URLFetchfetch 기능은 데드 파라미터 걸린다.
코드를 직접 구현하려면 time 모듈을 참조하십시오.
감사. RPC 시간 초과 기능은 많은 경우에 유용하지만, 호출 할 메소드가 쿼리 또는 데이터 저장소 기능을 완료하기 위해 대기하지 않을 경우 어떻게 타임 아웃 예외를 발생시킬 수 있습니까? 인위적인 예제로서, 내가 호출하는 메서드가 무한 루프에 걸린다고 가정 해 봅시다. – Chris
@Chris, 당신은 '시작 시간'을 저장하고 현재 시간과 비교함으로써 기본적인 점검을하기 위해 시간 모듈을 사용할 수 있습니다. 일단 한계를 넘으면 루프에서 빠져 나오거나 함수에서 돌아온다. –
다시 한번 감사드립니다. 다른 URL을 가져 오는 것이 실용적인 접근 방법이라고 생각합니다. 가져온 URL에서 메소드를 실행할 수 있으며 페칭을 수행하는 메소드에서 URLFetch 최종 기한을 사용할 수 있습니다. – Chris
루프에서 루프가 시작된 시간을 저장하고 각 반복에서 얼마나 오래되었는지 확인할 수 있습니다.
이 아니고 회 돌이가이 아닌 경우 다소 번거 롭습니다. 몇 줄의 코드마다 시간 확인 비트를 추가 할 수 있습니다. 이것은 물론 추악한 코드를 만들지 만 백그라운드에서 타이머를 실행하고 실행중인 코드를 인터럽트 할 수있는 스레드를 생성 할 수있는 능력이 없으면 주변 코드가별로 없습니다.
- 1. Google App Engine의 python 버전에서 반환하는 데 가장 오랜 시간이 걸리는 URL을 어떻게 찾을 수 있습니까?
- 2. Google App Engine의 Jinja2
- 3. Google App Engine의 Python 함수 데코레이터
- 4. Google App Engine의 간단한 Python 정규식 문제
- 5. IIS에서 Perl 스크립트의 실행 시간을 어떻게 제한 할 수 있습니까?
- 6. Google App Engine의 Django + Adsense
- 7. Google App Engine의 CMS
- 8. Google App Engine의 루아
- 9. Python Google App Engine의 엔티티 간 일대일 관계
- 10. Google App Engine의 SQLite
- 11. Google App Engine의 Lamson?
- 12. Google App Engine의 Datastore
- 13. Google App Engine의 PHP
- 14. Google App Engine의 appengine_config.py
- 15. Google App Engine의 Cron
- 16. Google App Engine의 메모리 사용량
- 17. Google App Engine의 대역폭 사용량
- 18. Google App Engine의 원자 단면도?
- 19. Google App Engine의 세션 쿠키
- 20. Google App Engine의 정적 301?
- 21. Google App Engine의 친숙한 URL
- 22. Google App Engine의 Blobstore는 30 초의 요청 제한 시간에 적용 할 수 있습니까?
- 23. Google App Engine의 FTP 파일
- 24. Google App Engine의 GIS 서비스
- 25. Google App Engine의 Python 프로그램에서 Java 클래스 라이브러리에 액세스 할 수 있습니까?
- 26. Google App Engine의 Resin 세션
- 27. Google App Engine의 Django 1.1
- 28. Google App Engine의 POST 메소드
- 29. Python Google App Engine : 데이터 저장소에서 특정 항목의 개수를 어떻게 확인할 수 있습니까?
- 30. Google App Engine의 Python 환경에서 메모리를 명시 적으로 비워야합니까?
지원되지 않는 문서는 어디에서도 볼 수 없습니다. 아무 것도 찾지 못 했습니까? 아니면 그냥 사용하려고 시도하고 가져올 때 빈 모듈을 가져옵니다. –