uwsgi는 Django가 빠진 구덩이들을 위탁 관리합니다.

865 단어
얼마 전에 Django로 인터페이스 서비스를 썼는데 BlockingScheduler를 사용하여 시간제 작업을 시작했습니다. 매일 데이터베이스를 한 번 찾았습니다. 이 컴퓨터에서 Django를 테스트할 때 아무런 문제가 없었습니다. 그러나 uwsgi에게 서버에 위탁하여 발표했을 때 시간제 작업이 시작되지 않았음을 발견했습니다. 문서를 찾아봤는데 uwsgi는 기본적으로 one thread one processor로 되어 있었고 요청이 없을 때 프로세스가 끊겼고 서브 프로세스도 끊겼습니다.해결 방안:uwsgi.ini 프로필에 추가
enable-threads = true

문제 해결이 다시 발표되자 시한부 임무가 일어났지만 단번에 N개의 시한부 임무가 생겼다.처음에는 자신의 단일 실례로 문제가 있다고 생각했는데, 나중에 서버가 시작되었을 때 여러 차례view를 초기화한 것이 사실이라는 것을 발견했다.py,view에서 인용한 대상을 여러 번 초기화합니다.한 번만 실행하는 코드를 URL에 넣을 수 있다고 합니다.py에서 갔어요. 그런데 저한테는 N을 8에서 3으로 바꿨어요.마지막 해결 방법: myapp/myapp/wsgi.py 파일
import logging
def startup():
    taskPoll = TaskPolling.GetInstance()

startup()
logging.info("django wsgi init")

로그를 보십시오. setup은 한 번만 실행되었고,taskPolling의 단일 사례는 여기에 보존되어 있습니다.view가 여러 번 초기화되어도, 정해진 시간에 작업이 하나만 시작됩니다.

좋은 웹페이지 즐겨찾기