2011-02-07 9 views
3

http를 통해 장기 실행 프로세스 (30 분)를 시작하고 실행중인 상태를 가져와야합니다. "프로세스"는 기본적으로 데이터베이스를 업데이트하는 Python 스크립트입니다. 다음 제약 조건이 있습니다.WSGI 응용 프로그램에서 서버에서 장기 실행 프로세스 시작

  1. 한 번에 하나의 프로세스 인스턴스 만 실행할 수 있습니다.

  2. WSGI 응용 프로그램은 여러 인터프리터에서 실행되므로 전역 변수 isRunning을 사용하여이를 추적 할 수 없습니다.

  3. 나는 과정 (상태/진행)

  4. 없음 장고, 순수한 WSGI를 추적하는 웹 페이지가 필요합니다.

누구나 같은 일을하는 경험이 있습니까?

+0

# 1과 # 2가 서로 모순되지 않는 방법을 명확히 할 수 있습니까? – carl

+0

"프로세스"또는 작업이 WSGI 응용 프로그램과 완전히 별개입니다. WSGI 응용 프로그램은 견고성/속도를 위해 modwsgi 및 WSGIDaemonProcess 프로세스 = 4를 사용하는 4 개의 프로세스/인터프리터에서 실행됩니다. – kalithlev

답변

2

프로세스를 별도의 데몬으로 분리하고 MQ 또는 다른 IPC를 사용하여 작업을 전달하십시오. 진행될 때 데이터베이스의 값을 업데이트하고 웹 페이지에서 해당 값을 읽습니다.

+0

프로세스가 로그를 출력하여 파일에 저장하고 웹 페이지에서 읽을 수 있습니다. 어떻게하면 파이썬 스크립트를 데몬으로 사용할 수 있습니까? – kalithlev

+0

"daemonize.py"를 찾으십시오. –

1

Celery (http://celeryproject.org/)를 사용하여 Python 웹 응용 프로그램 프로세스 외부에서 작업을 실행하십시오.

관련 문제