django 웹 애플리케이션 실행 시, 다음과 같은 것이 필요한데, 1. 웹 애플리케이

 
JeongWoo Choi

django 웹 애플리케이션 실행 시, 다음과 같은 것이 필요한데,
1. 웹 애플리케이션 실행과 동시에, 특정(사용자 정의) 클래스에 대한 객체가 생성
2. 이 객체는 유일성 보장(무조건 1개만 존재)
3. 이 객체는 애플리케이션이 작동하는 동안에는 계속 존재(메모리에 상주)
4. request가 들어올 때마다, 해당 객체에 대한 함수 실행( e.g. instance.got_request(request) )
– 만약 연속으로 2개의 request가 들어온다면, 먼저 들어온 request에 대해서 객체에 대한 함수를 실행하고, 이 함수가 끝날 때까지 다음 request는 대기

어떻게 구현해야할지 감이 잘 안오네요 ㅠ. 조언좀 부탁드리겠습니다.
감사합니다.

  • Suchan An

    어떤 기능을 개발하시는데 이런 구현이 필요한건가요?

    Young-il Cho

    데이터와 관련된 처리를 하시려는 용도라면 Django 인스턴스가 실행되는 Python 컨텍스트에 관련 정보를 저장하지 말고 Redis 등 제 3의 Memory-based Storage를 사용 하실 것을 추천 드립니다.

    Chinseok Lee

    celery 통해서 worker 하나를 통해 처리하는 방법도 있을 수 있을 듯 하네요.

    Kwon-Han Bae

    저도 celery 를 통해서 하고 동시성의 경우는 redis 에 user id 로 lock 거는걸 추천드립니다.

    Hyun-woo Park

    궁극적으로는 멱등/가환 가능한 설계가 요구되겠지만, 구현 비용대비 효과적으로는 위에서 나온 추천들 처럼 공유 메모리를 사용하는 것일 것 같습니다.

Advertisements