네트워크 다중 처리 설정을 http://eli.thegreenplace.net/2012/01/24/distributed-computing-in-python-with-multiprocessing/ (즉, 네트워크에 연결된 많은 클라이언트와 2 개의 대기열을 공유하는 하나의 서버)으로 간주하십시오.multiprocessing.managers.SyncManager를 사용하여 상수 값 공유
서버가 모든 클라이언트와 일부 매개 변수를 공유 할 수 있도록이 예제를 확장하고자합니다. 링크 된 코드에 따라, 내가 추가로 호출합니다 (get_params
비트) 등록하여 JobQueueManager
합니다 (서버 쪽) 확장 :
JobQueueManager.register('get_job_q', callable=lambda: job_q)
JobQueueManager.register('get_result_q', callable=lambda: result_q)
JobQueueManager.register('get_params', callable=lambda: ['123'])
manager = JobQueueManager(address=('', port), authkey=authkey)
manager.start()
이 일을 만들려면 다음과 같이, 나는 클라이언트 코드를 변경했다
job_q = manager.get_job_q()
result_q = manager.get_result_q()
params = manager.get_params()._getvalue()
그러나 대기열에는 필요하지 않은데 왜 _getvalue()
이 필요합니까? 더 나은/적절한 방법이 있습니까? 당신은 __dunder__
방법 __getitem__
, __setitem__
같은 일반 목록에 원활하게 접근 할 수 있도록하는 ListProxy
을 지정할 필요가
고마워요! 그건 대접이야. – Paul