Python을 사용한 자동화 및 다중 처리

TL; DR



작업을 실행하는 방법을 찾을 때 Python은 읽기/쓰기 또는 API 호출 여부에 관계없이 이러한 작업을 자동화할 수 있는 도구를 제공하며 이것이 필요할 수 있는 많은 사용 사례가 있습니다.

무엇을 이해하는 것부터 시작합시다. 그렇다면 파이썬의 하위 프로세스는 무엇입니까?

A subprocess in Python is a task that a python script delegates to the Operative system (OS) - Daniel Diaz, GeekFlare



요컨대 하위 프로세스는 운영 체제와의 새로운 수준의 응집력을 제공하여 달성할 수 없는 것을 달성할 수 있도록 합니다.

소개



이 튜토리얼을 마치면


  • 하위 프로세스의 개념 이해
  • Python 다중 프로세스/시간 라이브러리의 기본 사항을 배웠습니다
  • .
  • 하위 프로세스/다중 처리 라이브러리를 구현할 수 있는 의미 있는 예/사용 사례를 찾았습니다
  • .

    핵심 개념



    이 자습서에서는 Python 프로그래밍 및 데이터 구조에 대한 몇 가지 기본 기초가 있다고 가정합니다.

    subprocess 모듈의 좋은 점은 파이썬 개발자로서 우리에게 제공되는 핵심 유틸리티에 속한다는 것입니다. 이것은 PIP 또는 Pipenv를 사용하여 이 모듈을 종속성으로 설치할 필요가 없다는 것을 의미합니다. 이미 우리를 위해 있습니다!

    #calling the subprocess module into our environment
    import subprocess
    


    빠른 사용 사례,
  • 프로그램 체커
  • 가상 환경 설정
  • 다른 프로그래밍 언어 실행
  • 외부 프로그램 열기

  • 우리의 신청




    이 자습서에서는 Process.start() 모듈을 사용하여 Excel 데이터에 대한 백그라운드 계산을 실행하는 방법을 살펴봅니다.

    지도 시간



    따라서 하위 프로세스 패키지가 수행하는 작업과 가져오기 수준에서 어떻게 보이는지 높은 수준에서 학습한 후에는 자습서의 이 부분으로 이동할 준비가 된 것입니다.

    Python에서 제공하는 Process.start() 라이브러리의 multiprocessing api를 사용할 두 가지 빠른 구분을 제공하고 싶었습니다.

    그렇다면 하위 프로세스를 다루는 이유는 무엇입니까?

    나는 거꾸로 설명하는 것을 좋아합니다. 나에게 이것은 내가 배우고 있는 것이 시각적으로 집약적이기보다는 읽기 집약적일 때 내가 배우고 있는 환경의 전체 맥락을 이해함으로써 도움이 됩니다.


    요약: 이제 어떤 하위 프로세스가 멀티프로세싱을 의붓 자식/(실제 부모)으로 생각하는지 알고 있습니다. 백그라운드에서 해당 프로세스를 실행하는 대신 이제 여러 프로세스를 한 손으로 실행하여 "포그라운드"로 가져올 수 있습니다.



    여기서 우리는 데이터 세트를 가져오고 기본 산술 정렬을 사용하여 데이터 목록의 모든 항목을 합산합니다. 한 번
    이것이 완료되었습니다. 코드를 사용하여 배치 프로세스를 시뮬레이션하기 위해 60초마다 발생하도록 작업을 설정합니다. 실제 시나리오에서 더 많은 것을 도출하기 위해 이 데이터 세트는 회사의 의료/재무 데이터가 될 수 있으며 귀하의 작업은 이 데이터를 추출하여 목록으로 변환하는 것이었습니다. 따라서 그렇게 한 후 회사는 격주 결정을 내리기 위해 이 목록의 모든 데이터에 대한 요약이 필요합니다.


    데이터 세트



    #lets assume this data is updated every half minute
    data = [3, 4, 7, 10, 2, 32, 15, 8]
    




    암호



    from multiprocessing import Process
    from file_location import data
    
    def process_manager(data):
        while True:
            results = sum(data)
            time.sleep(60)
            return results
    
    if __name__ == '__main__':
        p = Process(target=process_manager(), args=(data))
        p.start()
    


    설명하기 위해 multiprocessing 거의 실시간 데이터 개체를 코드 환경으로 가져옵니다. 매분 실행하려는 프로세스를 관리하는 기능을 정의합니다.

    여기에서 프로세스가 대상 함수와 인수라는 두 가지 인수를 취하는 방법을 볼 수 있습니다. 이들은 함께 작동하여 개발자 환경에서 이 프로세스를 포크하고 애플리케이션과 동기화하여 실행합니다.


    참고: Python은 Rust와 같은 다른 언어에서 제공하는 다른 도구/패키지에 비해 다중 처리 및 동시성이 부족/고투하는 것으로 알려져 있으므로 시간 비용 결정을 내릴 때 장단점을 확인해야 합니다. 문제가 발생하면 코드를 디버깅하고 실행하는 데 약간의 시간을 할애하십시오. 이것은 더 많은 PYTHON에 대한 경험/이해를 얻을 수 있으므로 디버깅 기술을 연습하기에 안전한 연습이어야 합니다!

    Link to multiprocess

    좋은 웹페이지 즐겨찾기