기본적으로 내가하고 싶은 것을 리눅스 시스템에서 실행되는 너 한테의 성능을 테스트 할 수있는 웹 서비스를 제공 할
그것은 매우 간단한 PHP 처리기입니다. start_algo.php는 브라우저에서 들어오는 요청을 받아들입니다. php 코드에서는 system() 또는 popen() (exec ("python algo.py")) 파이썬 스크립트를 실행하는 새로운 프로세스를 발행하려면이 부분에서 수행 가능하다고 생각합니다.
문제는 웹 서비스이므로 동시에 여러 사용자에게 서비스해야한다는 것이지만 매우 혼란 스럽습니다. 국제 통역사에 의한 자물쇠 GIL http://wiki.python.org/moin/GlobalInterpreterLock '표준'CPython이 구현되었다는 것을 의미합니다. 즉, 3 명의 사용자가 3 개의 분리 된 프로세스를 의미하고, 3 개의 분리 된 프로세스를 의미하는 경우, 특정 순간에, 내가 틀린 plz 일 경우 올바른 것을 의미합니다. 사용자가 파이썬 인터프리터에 의해 서비스되고 다른 2 명이 자신의 순서를 기다리고 있습니까? 사전에
많은 감사
테드
아파치와'mod_wsgi'를 사용하고 있습니까? 그렇다면 동시 요청은 Python 외부의 해당 수준에서 잘 처리됩니다. 그렇지 않다면 왜 아파치 (또는 nginx)와 mod_wsgi를 사용하지 않는지 설명하십시오. –
@ S.Lott thx하지만 문제는 동시 요청에 관한 것이 아니라 동시에 Python 스크립트를 실행하는 것입니다. cuz이 스크립트는 실행 시간이 오래 걸리는 반면 PHP 코드는 단순히 "python algo.py" "cmd –
질문은 스크립트를 실행하는 각 요청과 동시 요청을 동기화합니다. 문제는 혼란 스럽다. 아파치와 mod_wsgi의 맥락에서 GIL을 언급 할 때마다, 당신은 정확히 무엇을하고 있는지를 설명해야한다. Apache가 요청을 분리합니다. 각 요청은 ** 별도의 ** 프로세스를 생성합니다. 아파치와 mod_wsgi에 의해 분리 된 각각의 요청은 실제로 별도의 서브 프로세스를 제출한다는 사실을 분명히 이해해야한다. 질문에서 - 당신이 이것을 이해하고 있음을 분명히 밝혀주십시오. –