매일 다시 시작되는 셀러리 Python 작업자 프로세스가 있습니다. 그들은 Python/Django 프로그램을 실행합니다.장기 실행 프로세스에서 전역 Python 변수 다시로드
프로세스 기간 동안 메모리에 유지되어야하는 특정 준 세계 값을 설정했습니다. 즉, 자주 변경되지 않는 특정 MySQL 쿼 리셋이 있으므로 프로세스가 시작 되 자마자 한 번만 평가되고 상수로 저장됩니다 (PROFILE = Profile.objects.get (user_id = 5)라는 나쁜 예).
완전히 새로운 프로그램을 실행하지 않고 셀러리 프로세스에서이 값을 재설정하려고한다고 가정 해 봅니다.
이 값은 여러 모듈에서 가져와 사용합니다. 나는 상수를 가져오고 키를 삭제/재설정하는 sys.modules에서 각각 하나씩 검토해야한다고 가정합니다. 그게 맞습니까?
이것은 매우 해킹 된 것 같습니다. 나는 보통 Memcached와 같은 외부 서비스를 사용하여 여러 프로세스간에 메모리를 조정하지만, 때로는 로컬 메모리가 NoSQL 저장소에 대한 네트워크 호출보다 바람직합니다.
빛나는, 완벽한 말이됩니다. 감사합니다 다니엘 – Ben
도와 줘요 많이 줘, 고마워 !!! – Krishh