7
4 명의 작업자가있는 풀을 만들고 어떤 작업 (pool.apply_async(..)
사용)을 설정하면 multiprocessing.current_process().name
을 사용하여 각 프로세스의 이름에 액세스 할 수 있지만 부모 프로세스의 이름을 어떻게 설정합니까? 로깅)?multiprocessing.pool의 프로세스 이름은 어떻게 지정합니까?
4 명의 작업자가있는 풀을 만들고 어떤 작업 (pool.apply_async(..)
사용)을 설정하면 multiprocessing.current_process().name
을 사용하여 각 프로세스의 이름에 액세스 할 수 있지만 부모 프로세스의 이름을 어떻게 설정합니까? 로깅)?multiprocessing.pool의 프로세스 이름은 어떻게 지정합니까?
Process.name
은 just a setter이므로 자유롭게 지정할 수 있습니다.
풀에는 initializer
인수가 사용됩니다. 호출 가능한 모든 호출이 가능하며 각 하위 프로세스가 시작될 때 한 번 호출됩니다. 해당 프로세스의 name
속성을 원하는 값으로 설정하는 함수를 가리킬 수 있습니다.
감사합니다. 작동합니다. initializer + setproctitle을 사용하고 있습니다. – alasarr
@TkTech @Sveltely @alasar ** 풀 초기화를 위해 ** 초기화 프로그램으로 사용하는 함수에'multiprocessing.current_process(). name = 'some string ''을 사용하여 프로세스의 이름을 설정하고 로그 레코드 속성 **을 사용합니다 % (processName) s ** 로깅 포맷터에서,하지만 여전히 로그 메시지에서 프로세스에 대해 생성 된 기본 이름 (예 : PoolWorker-1, PoolWorker-2)을 볼 수 있으며 초기화 프로그램의 프로세스에 대해 설정 한 이름이 아닙니다. 기능. 뭐가 잘못 됐는지 말해 주실 수 있겠습니까? –