찾다
백엔드 개발파이썬 튜토리얼내구성 있는 Python: 강력한 장기 실행 워크플로 구축을 단순화

Durable Python: Building Bullet-Proof Long-Running Workflows, Made Simple

현대 소프트웨어 개발에서는 다양한 서비스의 API를 연결하고 동기 및 비동기 이벤트를 모두 처리하는 강력한 워크플로를 만드는 것이 일반적인 과제입니다. 기존 접근 방식에는 대기열, 마이크로서비스 및 상태 관리 시스템을 혼합하여 사용하여 확장 가능한 애플리케이션을 구축하는 것이 포함됩니다. 이 아키텍처는 효과적이기는 하지만 메시지 큐와 같은 인프라 설정 및 유지 관리, 서버 또는 람다 기능 실행, 데이터베이스 상태 관리, 복잡한 오류 처리 메커니즘 구현 등 상당한 오버헤드를 수반합니다.

이 모든 인프라를 관리하는 번거로움 없이 장기 실행 워크플로를 처리할 수 있는 더 간단하고 안정적인 방법이 있다면 어떨까요? 이것이 내구성 있는 Python의 목표입니다. 사용해 보려면 베타에 등록하세요.

장기 실행 프로세스에 대한 순진한 솔루션의 문제점

GitHub에서 PR(풀 요청)을 모니터링한다고 가정해 보세요. 새 PR이 열릴 때마다 토론을 위한 전용 Slack 채널을 만들고 PR이 닫히거나 병합될 때까지 매일 알림을 보내고 싶습니다. 간단하게 들리므로 기본 Python 함수로 문제를 해결할 수 있다고 생각할 수도 있습니다(ChatGPT에서 생성된 기본 Python 함수는 다음과 같습니다).

@app.route('/webhook', methods=['POST'])
def github_webhook():
    data = request.json
    if 'pull_request' in data and data['action'] == 'opened':
        pr_number = data['pull_request']['number']
        pr_url = data['pull_request']['html_url']
        # Create a new Slack channel for the PR
        channel_id = create_slack_channel(pr_number)
        send_slack_notification(channel_id, pr_number, pr_url)
        # Periodically check the PR status and send reminders until it's closed or merged
        while True:
            time.sleep(3600)  # Wait for 1 hour before checking the status again
            pr_status = check_pr_status(pr_number)
            if pr_status == 'open':
                send_slack_notification(channel_id, pr_number, pr_url)
            else:
                break
    return jsonify({'status': 'ok'})

이 코드 조각은 작업을 처리하는 것처럼 보이지만 "행복한 흐름" 시나리오에만 적합합니다. 실제 애플리케이션에서는 이러한 순진한 접근 방식이 부족합니다. while 루프는 지속적인 서버 가동 시간에 의존하지만 이는 보장되지 않습니다. 프로세스가 중단되고 서버가 다시 시작될 수 있으며 갑자기 작업 흐름이 중단될 수 있습니다.

실제 솔루션: 이벤트 기반 애플리케이션

보다 안정적인 접근 방식은 이벤트 중심 애플리케이션을 구축하는 것입니다. 여기서는 대기열을 사용하여 GitHub 이벤트를 수신하고, cron 작업을 사용하여 미리 알림을 보내고, 데이터베이스를 사용하여 PR 및 채널 상태를 저장하고, 함수를 사용하여 이러한 이벤트를 처리합니다. 일반적으로 이 설정은 배포 및 실행을 위해 AWS Lambda와 같은 서비스를 활용하여 클라우드 인프라에서 실행됩니다.

이 방법은 실행 가능하고 강력하지만 상당한 설정, 유지 관리 및 전문 지식이 필요합니다. 인프라 관리, 가동 시간 보장, 오류 상태 처리에는 상당한 리소스와 숙련된 팀이 필요합니다.

내구성 있는 Python을 만나보세요: 단순성과 신뢰성이 만나다

순진한 Python 코드의 단순성과 비동기식 설계의 안정성을 결합할 수 있다면 어떨까요? 프로세스가 중단되거나 서버가 다시 시작되더라도 Python이 중단된 부분부터 다시 시작하도록 보장할 수 있다면 어떨까요?

AutoKitteh는 내구성 있는 Python을 통해 이러한 문제를 정확하게 해결합니다. 내구성 있는 Python을 사용하여 사용자는 Python 코드를 작성하고 시스템은 프로세스가 다시 시작되면 동일한 지점에서 계속 실행되도록 보장합니다. 제한 사항이 있지만(예: 긴 가동 중지 시간은 이상적이지 않을 수 있음) 대부분의 사용 사례에서 이 솔루션은 완벽하게 작동합니다.

내구성 있는 Python이 제공하는 것

Durable-Python을 사용하면 수동으로 상태를 관리할 필요가 없으므로 워크플로를 빌드 및 디버깅이 어려울 수 있는 이벤트 중심 상태 머신이 아닌 연속 흐름으로 작성할 수 있습니다. 인프라로서 AutoKitteh에는 대기열이 내장되어 있고 외부 애플리케이션 및 API와의 통합이 있어 Python에서 강력한 워크플로를 쉽고 빠르게 개발할 수 있습니다.

작동 방식

마법은 필요하지 않습니다. 견고한 엔지니어링만 있으면 됩니다. AutoKitteh는 내구성 있는 워크플로를 구축하기 위한 프레임워크인 Temporal을 기반으로 합니다. 시간적에는 결정론, 멱등성 및 신뢰성을 보장하는 기타 개념에 대한 이해를 포함하여 특정 코딩 방식이 필요합니다. AutoKitteh는 이러한 복잡성을 추상화하여 개발자가 표준 Python 코드를 작성할 수 있도록 합니다. 내부적으로는 부작용이 있는 모든 기능이 임시 활동으로 변환됩니다. 개발자는 이러한 세부 사항에 대해 걱정할 필요가 없습니다. 비즈니스 로직 작성에만 집중하세요.

자세한 기술적인 내용은 AutoKitteh 문서를 참조하세요.

비용이 있나요?

물론 모든 추상화에는 대가가 있습니다. 내부적으로 내구성 있는 Python은 워크플로의 흐름을 기록하여 오류 후 복구를 가능하게 하며 이로 인해 일부 스토리지 및 성능 비용이 발생합니다.

Durable Python은 데이터 애플리케이션 구축보다는 API 조정을 위해 설계되었습니다. 고성능 애플리케이션이 필요한 경우 맞춤형 솔루션 구축을 고려해야 합니다. 하지만 최소한의 개발과 인프라 투자로 안정적인 워크플로를 빠르게 개발하고 싶다면 내구성 있는 Python이 좋은 선택이 될 수 있습니다.

실제 응용 프로그램

Durable Python은 특히 다음과 같이 안정성이 중요한 도메인에서 광범위한 워크플로에 적용될 수 있습니다.

  • API 오케스트레이션 - 안정적인 내부 워크플로를 구축합니다.
  • DevOps 자동화: 오류 복구를 보장하여 배포 파이프라인 또는 코드 검토 자동화를 자동화합니다.
  • ChatOps: 채팅 플랫폼과 통합하여 팀 알림을 자동화하고 워크플로를 관리합니다.
  • MLOps: 중단에도 불구하고 장기 실행 기계 학습 워크플로가 원활하게 계속되도록 보장합니다.

워크플로의 예는 여기에서 확인할 수 있습니다.

결론: 코드가 적고 번거로움이 적습니다.

AutoKitteh를 기반으로 구현된 내구성 있는 Python 개념을 통해 개발자는 최소한의 코드로 안정적인 워크플로 자동화를 구축, 배포 및 관리할 수 있습니다. 내구성 있는 실행과 원활한 복구가 백그라운드에서 처리되므로 진정으로 중요한 비즈니스 로직에 집중할 수 있습니다.

내구성을 달성하기 위한 훌륭한 도구(예: Temporal 및 Restate)가 많이 있지만, 내구성-Python은 동일한 결과를 얻을 수 있는 빠르고 간단하며 비용 효율적인 방법을 제공합니다.

위 내용은 내구성 있는 Python: 강력한 장기 실행 워크플로 구축을 단순화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
파이썬 : 기본 응용 프로그램 탐색파이썬 : 기본 응용 프로그램 탐색Apr 10, 2025 am 09:41 AM

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 ​​같은 작업에 적합합니다.

2 시간 안에 얼마나 많은 파이썬을 배울 수 있습니까?2 시간 안에 얼마나 많은 파이썬을 배울 수 있습니까?Apr 09, 2025 pm 04:33 PM

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법?10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법?Apr 02, 2025 am 07:18 AM

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까?중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까?Apr 02, 2025 am 07:15 AM

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일을로드 할 때 '__builtin__'모듈을 찾을 수없는 경우 어떻게해야합니까?Python 3.6에 피클 파일을로드 할 때 '__builtin__'모듈을 찾을 수없는 경우 어떻게해야합니까?Apr 02, 2025 am 07:12 AM

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

경치 좋은 스팟 코멘트 분석에서 Jieba Word 세분화의 정확성을 향상시키는 방법은 무엇입니까?경치 좋은 스팟 코멘트 분석에서 Jieba Word 세분화의 정확성을 향상시키는 방법은 무엇입니까?Apr 02, 2025 am 07:09 AM

경치 좋은 스팟 댓글 분석에서 Jieba Word 세분화 문제를 해결하는 방법은 무엇입니까? 경치가 좋은 스팟 댓글 및 분석을 수행 할 때 종종 Jieba Word 세분화 도구를 사용하여 텍스트를 처리합니다 ...

정규 표현식을 사용하여 첫 번째 닫힌 태그와 정지와 일치하는 방법은 무엇입니까?정규 표현식을 사용하여 첫 번째 닫힌 태그와 정지와 일치하는 방법은 무엇입니까?Apr 02, 2025 am 07:06 AM

정규 표현식을 사용하여 첫 번째 닫힌 태그와 정지와 일치하는 방법은 무엇입니까? HTML 또는 기타 마크 업 언어를 다룰 때는 정규 표현식이 종종 필요합니다.

Inversiting.com의 크롤링 메커니즘을 우회하는 방법은 무엇입니까?Inversiting.com의 크롤링 메커니즘을 우회하는 방법은 무엇입니까?Apr 02, 2025 am 07:03 AM

Investing.com의 크롤링 전략 이해 많은 사람들이 종종 Investing.com (https://cn.investing.com/news/latest-news)에서 뉴스 데이터를 크롤링하려고합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는