InfoGrab Docs

태스크 러너

내부 또는 외부 러너 프로세스를 사용하여 태스크를 실행하도록 태스크 러너를 구성하는 방법입니다.

태스크 러너는 태스크를 안전하고 효율적으로 실행하기 위한 범용 메커니즘입니다. Code 노드 에서 사용자가 제공한 JavaScript 및 Python 코드를 실행하는 데 사용됩니다. 이 문서에서는 태스크 러너의 작동 방식과 구성 방법을 설명합니다. 내부 모드는 프로덕션에 권장하지 않음 프로덕션 환경에서 내부 모드를 사용하면 보안 위험이 발생할 수 있습니다. 프로덕션 배포 시에는 n8n과 태스크 러너 프로세스 간의 적절한 격리를 보장하기 위해 외부 모드 를 사용하세요. 추가 보안 조치는 태스크 러너 강화 를 참조하세요. 작동 방식 # 태스크 러너 기능은 하나 이상의 태스크 러너, 태스크 브로커, 태스크 요청자로 구성됩니다. 태스크 러너는 웹소켓 연결을 사용하여 태스크 브로커에 연결합니다. 태스크 요청자는 브로커에 태스크 요청을 제출하고, 사용 가능한 태스크 러너가 이를 가져와 실행합니다. 러너는 태스크를 실행하고 결과를 태스크 요청자에게 제출합니다. 태스크 브로커는 러너와 요청자 간의 통신을 조율합니다. n8n 인스턴스(메인 및 워커)가 브로커 역할을 합니다. 이 경우 Code 노드가 태스크 요청자입니다. 태스크 러너 모드 # 태스크 러너는 내부 및 외부의 두 가지 모드로 사용할 수 있습니다. 내부 모드 # 내부 모드에서는 n8n 인스턴스가 태스크 러너를 자식 프로세스로 실행합니다. n8n 프로세스가 태스크 러너의 라이프사이클을 모니터링하고 관리합니다. 태스크 러너 프로세스는 n8n과 동일한 uid 및 gid 를 공유합니다. 프로덕션에서는 권장하지 않습니다 . 외부 모드 # 외부 모드에서는 런처 애플리케이션 이 필요에 따라 태스크 러너를 실행하고 라이프사이클을 관리합니다. 일반적으로 n8n 옆에 런처, JS 태스크 러너 및 Python 태스크 러너가 포함된 n8nio/runners 이미지를 실행하는 사이드카 컨테이너를 추가하는 것을 의미합니다. 이 사이드카 컨테이너는 n8n 인스턴스와 독립적입니다. 큐 모드 를 사용할 때는 각 워커마다 태스크 러너를 위한 자체 사이드카 컨테이너가 필요합니다. 또한 OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=false 인 경우, 메인 인스턴스가 수동 실행을 처리하므로 태스크 러너를 위한 자체 사이드카 컨테이너도 필요합니다. 오프로드를 비활성화한 상태로 n8n을 실행하는 것은 프로덕션에서 권장하지 않습니다. 외부 모드 설정 # 외부 모드에서는 n8n 옆에 n8nio/runners 이미지를 사이드카 컨테이너로 실행합니다. 아래에서 참고용 docker compose를 찾을 수 있습니다. n8nio/runners 이미지 버전은 n8nio/n8n 이미지와 일치해야 하며, n8n 버전은 >=1.111.0이어야 합니다. services: n8n: image: n8nio/n8n:1.111.0 container_name: n8n-main environment: - N8N_RUNNERS_ENABLED=true - N8N_RUNNERS_MODE=external - N8N_RUNNERS_BROKER_LIS