레이트 리미터
워크플로의 한 분기가 실행될 수 있는 속도를 제한합니다.
다운스트림 워크플로 단계 실행 사이에 최소 시간 간격을 강제하여 실행 빈도를 제한하고, 연결된 단계가 지정된 쿨다운 기간보다 더 자주 실행되지 않도록 함으로써 과도한 실행을 방지합니다.
이 블록의 작동 방식
이 블록은 연속 실행 사이에 쿨다운 기간을 강제하여 워크플로 분기의 실행 속도를 제한합니다. 이 블록은:
초 단위의 쿨다운 기간, a
depends_on참조, 그리고next_steps를 입력으로 받습니다내부 상태 변수를 사용하여 마지막 실행의 타임스탬프를 추적합니다
현재 시간을 계산합니다:
비디오 처리의 경우: 비디오 메타데이터(프레임 번호와 FPS)를 사용하여 비디오 시간 기반 타임스탬프를 계산합니다. 이때
video_reference_image가 제공된 경우다른 컨텍스트의 경우: 시스템 시계 시간(datetime.now())을 사용합니다
마지막 실행 이후 경과한 시간을
cooldown_seconds임계값과 비교합니다충분한 시간이 경과한 경우(경과 시간 >= cooldown_seconds):
마지막 실행 타임스탬프를 업데이트합니다
지정된
next_steps블록으로 실행을 계속하여 다운스트림 처리를 허용합니다
충분한 시간이 경과하지 않은 경우(경과 시간 < cooldown_seconds):
현재 워크플로 분기를 종료하여 쿨다운 기간이 만료될 때까지 다운스트림 실행을 방지합니다
다음 단계로 계속하거나 분기를 종료하는 흐름 제어 지시문을 반환합니다
이 블록은 워크플로 실행 전반에 걸쳐 실행 상태를 유지하며, 다운스트림 단계가 마지막으로 실행된 시점을 추적합니다. depends_on 매개변수는 종속 관계를 설정하고, 레이트 리미터는 종속 단계가 완료된 시점을 모니터링하여 쿨다운 기간이 지났는지 확인합니다. 비디오 워크플로의 경우, 이 블록은 벽시계 시간 대신 비디오 시간 기반 타임스탬프(프레임 번호와 FPS로 계산됨)를 사용할 수 있으며, 이는 비디오를 실시간보다 더 빠르게 처리할 때 유용합니다. 처리 속도보다 비디오 시간에 상대적인 속도 제한이 올바르게 작동하도록 보장합니다.
요구 사항
중요한 제한 사항: 레이트 리미터는 현재 비디오 처리 컨텍스트에서만 작동합니다. HTTP 서비스 뒤에서 실행되는 워크플로(Roboflow Hosted API, Dedicated Deployment 또는 자체 호스팅 추론 서버)에서 사용할 경우, 각 요청은 독립적이며 요청 간에 실행 상태가 유지되지 않으므로 HTTP 요청 처리에는 속도 제한이 적용되지 않습니다.
일반적인 사용 사례
비용이 큰 작업의 속도 제한: 리소스 집약적인 다운스트림 작업의 실행 빈도를 제한합니다(예: 데이터 업로드는 최대 5초마다 실행하고, 더 자주 시도되면 건너뜀). 사용량 기반 가격 책정 작업의 시스템 과부하를 방지하고 비용을 줄입니다
알림 스팸 방지: 알림 블록의 빈도를 제한하여 수신자에게 과도하게 알림이 전달되지 않도록 합니다(예: 탐지가 발생할 때 이메일 알림을 분당 최대 한 번만 보내고, 중복 알림은 건너뜀). 알림이 의미 있고 실행 가능하도록 유지합니다
API 속도 제한 준수: 외부 API 호출 또는 서비스 통합에 대한 속도 제한을 강제합니다(예: 외부 시스템에 대한 웹훅 호출을 초당 한 번으로 제한하고 API 할당량 초과를 방지). 외부 서비스의 속도 제한을 준수하도록 보장합니다
데이터베이스 쓰기 최적화: 데이터베이스 또는 데이터 저장 시스템에 대한 쓰기 빈도를 줄입니다(예: 탐지 결과를 최대 10초마다 기록하고, 업데이트를 효율적으로 일괄 처리). 데이터베이스 부하를 최소화하고 전체 시스템 성능을 향상시킵니다
비디오 처리 효율성: 빠른 감기 처리로 많은 프레임이 빠르게 생성될 수 있는 비디오 워크플로에서 처리 속도를 제어합니다(예: 분석 단계를 비디오 시간 2초마다 처리하도록 제한하고, 실시간보다 빠르게 처리할 때도 적절한 타이밍을 유지). 정확한 속도 제한을 위해 비디오 시간 기반 속도 제한을 사용합니다
리소스 관리: 비용이 큰 모델 추론 또는 처리 단계의 실행 빈도를 제한하여 계산 리소스를 관리합니다(예: 비용이 큰 분석은 최대 3초에 한 번만 실행하고, 중복 처리는 건너뜀). 처리 속도와 리소스 제약 사이의 균형을 맞춥니다
다른 블록에 연결하기
이 블록은 워크플로 실행 흐름을 제어하며 다음과 같이 연결할 수 있습니다:
워크플로 단계 사이 실행 속도를 제한하고 싶을 때, 레이트 리미터를 소스 단계(에서 참조됨)와 대상 단계(에 지정됨) 사이에 배치하여 실행 사이에 최소 시간 간격을 강제합니다
depends_on)와 대상 단계(에 지정됨next_steps)을 사용하여 실행 사이에 최소 시간 간격을 강제합니다알림 블록 앞에서 (예: 이메일 알림, Slack 알림, Twilio SMS 알림) 쿨다운 기간보다 더 자주 알림이 전송되지 않도록 하여 알림 스팸을 방지하고, 알림 효과를 유지하며 수신자가 압도되지 않도록 합니다
데이터 저장 블록 앞에서 (예: 로컬 파일 싱크, CSV 포매터, Roboflow Dataset 업로드, Webhook Sink) 쓰기 작업의 빈도를 제한하고 저장 또는 네트워크 오버헤드를 줄이며, 업데이트를 효율적으로 일괄 처리하고 과도한 쓰기 작업을 방지합니다
외부 API 통합 앞에서 (예: Webhook Sink) 외부 서비스의 속도 제한을 준수하도록 하여 API 호출이 허용된 빈도를 초과하지 않게 하고 속도 제한 오류를 방지합니다
비디오 처리 워크플로에서 빨리 감기 처리로 프레임이 빠르게 생성되는 경우, 다음을 사용하여
video_reference_image실시간보다 더 빠르게 비디오를 처리하더라도 올바르게 작동하는 비디오 시간 기반 속도 제한을 활성화하여 비디오 재생 시간에 상대적인 적절한 실행 타이밍을 유지합니다탐지 또는 분석 블록 뒤에서 (예: 객체 탐지, 분류, 라인 카운터) 잦은 탐지 또는 이벤트로 트리거되는 다운스트림 처리를 제한하여, 모든 프레임에서 탐지가 발생하더라도 비용이 큰 작업이 너무 자주 실행되지 않도록 합니다
타입 식별자
단계의 다음 식별자를 사용하세요 "type" 필드: roboflow_core/rate_limiter@v1 블록을 워크플로의 단계로 추가합니다.
속성
이름
유형
설명
참조
name
str
이 단계의 고유 식별자를 입력하세요..
❌
cooldown_seconds
float
next_steps 블록의 연속 실행 사이에 경과해야 하는 최소 초 수입니다. 레이트 리미터는 마지막 실행 타임스탬프를 추적하고, 이전 실행 이후 이 초 수 이상이 지났을 때만 실행을 계속 허용합니다. 0.0 이상이어야 합니다. 비디오 워크플로의 경우, video_reference_image가 제공되면 이 쿨다운 기간은 시스템 시계 시간이 아니라 비디오 메타데이터(프레임 번호와 FPS로 계산됨)를 기준으로 강제됩니다..
❌
이 참조 열은 workflow 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있음을 나타냅니다. 워크플로 런타임입니다. 참고 바인딩 에서 자세한 내용을 확인하세요.
런타임 호환성
soft - 런타임 hosted_serverless, dedicated_deployment; 실행 원격 : 쿨다운/속도 제한 타이머는 프로세스 메모리에 저장됩니다. 상태 비저장 또는 다중 복제본 HTTP 런타임에서 원격 단계 실행을 사용하면 각 요청이 새 작업자를 받으므로 쿨다운이 속도를 제한하지 않습니다. 쿨다운은 지속적인 WebRTC 세션에서 로컬 단계 실행을 사용할 때만 문서화된 대로 작동합니다.
입력 및 출력 바인딩
사용 가능한 연결은 바인딩 종류에 따라 달라집니다. Rate Limiter의 version Rate Limiter 버전 v1 에 어떤 바인딩 종류가 있는지 확인하세요.
입력 및 출력 바인딩
입력
depends_on(*): 이 레이트 리미터 블록 바로 앞에 오는 워크플로 단계에 대한 참조입니다. 이는 종속 관계를 설정하며, 레이트 리미터는 이 단계가 완료되는 시점을 모니터링하여 마지막 실행 이후 쿨다운 기간이 지났는지 확인합니다. depends_on 단계는 속도 제한이 적용되는 다운스트림 처리를 트리거하는 출력이 있는 모든 워크플로 블록일 수 있습니다..next_steps(단계): 속도 제한이 허용되는 경우(즉, 마지막 실행 이후 충분한 시간이 경과한 경우) 실행할 워크플로 단계 목록입니다. 이 단계들은 쿨다운 기간이 경과했을 때만 제어 흐름을 받아 제한된 다운스트림 처리를 활성화합니다. 쿨다운 기간이 경과하지 않았다면 분기가 종료되므로 이 단계들은 실행되지 않습니다. 각 단계 선택자는 속도 제한이 허용될 때 실행되어야 하는 워크플로의 블록을 참조합니다..video_reference_image(이미지): 비디오 시간 기반 타임스탬프 생성을 위해 사용할 비디오 프레임 이미지에 대한 선택적 참조입니다. 제공되면 레이트 리미터는 시스템 시계 시간 대신 비디오 메타데이터(프레임 번호와 FPS)를 기반으로 타임스탬프를 계산합니다. 이는 실시간보다 더 빠르게 비디오를 처리할 때 유용하며, 처리 속도보다 비디오 재생 시간에 상대적으로 속도 제한이 올바르게 작동하도록 보장합니다. 제공되지 않으면(None) 블록은 시스템 시계 시간(datetime.now())을 사용합니다. 비디오 처리 워크플로에만 적용됩니다..
출력
마지막 업데이트
도움이 되었나요?