나는 장고 기반의 http 서버를 가지고 있으며 memcache에 액세스하기 위해 클라이언트 라이브러리로 django.core.cache.backends.memcached.MemcachedCache를 사용합니다. memcached에 대한 호출이 500ms 동안 캐시에 액세스 할 수없는 경우 False를 반환하도록 제한 시간 (예 : 500ms)을 설정할 수 있는지 여부를 알고 싶습니다. 우리는 DB를 호출합니다. 그렇게 할 수있는 환경이 있습니까?memcache (django)에 데이터를 가져 오는 동안 시간 초과 지정
3
A
답변
0
전에 시도한 적이 없지만 스레딩을 사용하고 캐시 할 함수 호출에 시간 초과를 설정할 수 있습니다. 예를 들어,이 링크에서 본체에서 제공되는 예를 무시하지만, 짐 캐롤의 코멘트를 보면 :
뭔가 적응 http://code.activestate.com/recipes/534115-function-timeout/
사용할 수 있습니다
from threading import Timer
import thread, time, sys
def timeout():
thread.interrupt_main()
try:
Timer(0.5, timeout).start()
cache.get(stuff)
except:
print "Use a function to grab it from the database!"
그렇게하지 지금 당장 테스트 해 볼 시간이 있지만, 장고 자체가 스레드인지 여부에 관심이 있으며, 그렇다면 실제로 수행 할 메인 스레드를 방해하고 있습니까? 어느 쪽이든, 그것은 잠재적 출발점입니다. 나는 이것을 허용하고 아무것도 발견 할 수없는 구성 옵션을 찾았다.
관련 문제
- 1. ResourceAccessException : I/O 오류 : 가져 오는 동안 시간 초과 : RestTemplate
- 2. wsclient에서 시간 초과 지정
- 3. Google App Engine + Memcache 캐시에서 모든 데이터를 가져 오는 방법
- 4. Blackberry의 연결 시간 초과
- 5. 세션 시간 초과 동안 팝업
- 6. 할당 초과 Memcache 메모리
- 7. Npgsql : 풀에서 연결하는 동안 시간 초과.
- 8. AppEngine Bulkloader가 가져 오는 동안 데이터를 생성합니다.
- 9. MongoConnection을 기다리는 시간 초과
- 10. 로그인시 세션 시간 초과 및 재 지정
- 11. 캐시 설계 및 Memcache (d) 시간 초과 레코드?
- 12. Android에서 연결 시간 초과
- 13. WinINet을 사용하는 동안 수동 FTP 시간 초과
- 14. 시간 초과
- 15. csv 시간 초과 문제 가져 오기
- 16. 심문 조직, 시간 초과
- 17. 데이터를 가져 오는 방법
- 18. 회원 시간 초과 및 세션 시간 초과
- 19. URL에서 데이터를 가져 오는 방법을
- 20. 안드로이드 Httpget 시간 초과
- 21. Jquery ajax 호출 시간 초과.
- 22. 세션 시간 초과 관련
- 23. WCF 시간 초과 문제
- 24. 파일에서 데이터를 가져 오는 명령
- 25. JQuery 및 MVC 세션 시간 초과 리디렉션
- 26. '-'을 가져 오는 동안 추출하십시오.
- 27. Google Checkout이 시간 초과 됨
- 28. 데이터를 SAP로 가져 오는 방법
- 29. 플렉스 스트리밍 시간 초과
- 30. PHP의 함수에서 시간 초과
실제로 스레드가 없기 때문에 장고에 문제가 있습니다. 나는 코드를보고 있었고 소켓 타임 아웃은 _SOCKET_TIMEOUT으로 파이썬 memcache 클라이언트 (memcache.py)에 지정되어있다. 기본값은 3 초입니다. 그것은 나를 위해 너무 높은 비트입니다. 아마도이 값을 수정해야 할 것입니다. 그러나 파이썬 memcache 클라이언트가이 타임 아웃을 사용자 정의 할 수있는 방법을 제공하지 않는다는 것은 정말로 이상합니다. – Rajat
예, 시간 초과를 지정할 수 있습니다. 다음과 같이 socket_timeout 매개 변수를 memcache의 Client()로 전달하십시오. from memcache import Client; c = 클라이언트 ([ 'localhost'], socket_timeout = 10.5) –