2013-05-09 5 views
0

동일한 데이터베이스 테이블에 잠재적으로 액세스 할 수있는 여러 개의 동시 Python 프로그램을 실행하고 각 프로그램이 전체 CPU를 사용하지 못하게하여 서버를 허용하는 기능이 Python에 있습니까? 추가 용량이 남았습니까?동일한 데이터베이스 테이블에 액세스하는 여러 개의 동시 Python 프로그램 실행

+0

사용할 데이터베이스 소프트웨어는 무엇입니까? – nacholibre

+0

Postgresql이 데이터베이스를 선택했을 것입니다. – Superdooperhero

+0

글쎄, 데이터베이스가 동시 읽기 및 쓰기를 위해 만들어 졌기 때문에 어떤 문제가 생길 것 같지 않습니다. 쿼리 사이에 수면은 CPU 부하의 균형을 맞출 수 있습니다. – nacholibre

답변

0

몇 가지 문제 :

  1. 여러 개의 동시 파이썬 프로그램 - 각 프로세스는 자신의 DB 연결을 만들어야합니다 - (http://docs.python.org/2/library/multiprocessing.html)
  2. 액세스 같은 데이터베이스 테이블 시작을 내가 내장 모듈 멀티로하려고 것, http://wiki.python.org/moin/Concurrency 참조 - 그 후에는 동시성이 rdbms 및/또는 연결/쿼리 옵션에 의해 관리되거나 구성됩니다. 잠금/세마포어를 사용하면 프로세스간에 동기화가 실제로 필요한 경우 도움이 될 수 있습니다.
  3. 전체 CPU를 사용하는 각 프로그램을 방지 - 그것은 당신의 프로세스가 무엇을해야하는지 의존, 내가 함께 갈 것입니다 :
    • 이 모든 시간 (마스터 프로세스)를 실행 한 메인 프로그램을 가지고 않습니다 일시 정지 (time.sleep, gevent.sleep 또는 이와 유사한 것)와 급부상하고 컨트롤 양산 공정 (노동자)
    • 는 프로세스가 작업 (노동자) 할 양산 - 열린 새 연결을 DB 작업을하고

내가 그 확신 종료 다중 처리 (또는 기타) 모듈에서 제공하는 일부 워크 플로/시스템 c ould는 사용자의 요구 사항 (Workers, Pools, Queues, Pipes, Shared states, Synchronization, ...)에 적합합니다.

+0

감사합니다. – Superdooperhero

관련 문제