For the complete documentation index, see llms.txt. This page is also available as Markdown.

레이트 리미터

워크플로의 한 분기가 실행될 수 있는 속도를 제한합니다.

다운스트림 워크플로 단계 실행 사이에 최소 시간 간격을 강제하여 실행 빈도를 제한하고, 연결된 단계가 지정된 쿨다운 기간보다 더 자주 실행되지 않도록 함으로써 과도한 실행을 방지합니다.

이 블록의 작동 방식

이 블록은 연속 실행 사이에 쿨다운 기간을 강제하여 워크플로 분기의 실행 속도를 제한합니다. 이 블록은:

  1. 초 단위의 쿨다운 기간, a depends_on 참조, 그리고 next_steps 를 입력으로 받습니다

  2. 내부 상태 변수를 사용하여 마지막 실행의 타임스탬프를 추적합니다

  3. 현재 시간을 계산합니다:

    • 비디오 처리의 경우: 비디오 메타데이터(프레임 번호와 FPS)를 사용하여 비디오 시간 기반 타임스탬프를 계산합니다. 이때 video_reference_image 가 제공된 경우

    • 다른 컨텍스트의 경우: 시스템 시계 시간(datetime.now())을 사용합니다

  4. 마지막 실행 이후 경과한 시간을 cooldown_seconds 임계값과 비교합니다

  5. 충분한 시간이 경과한 경우(경과 시간 >= cooldown_seconds):

    • 마지막 실행 타임스탬프를 업데이트합니다

    • 지정된 next_steps 블록으로 실행을 계속하여 다운스트림 처리를 허용합니다

  6. 충분한 시간이 경과하지 않은 경우(경과 시간 < cooldown_seconds):

    • 현재 워크플로 분기를 종료하여 쿨다운 기간이 만료될 때까지 다운스트림 실행을 방지합니다

  7. 다음 단계로 계속하거나 분기를 종료하는 흐름 제어 지시문을 반환합니다

이 블록은 워크플로 실행 전반에 걸쳐 실행 상태를 유지하며, 다운스트림 단계가 마지막으로 실행된 시점을 추적합니다. 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())을 사용합니다. 비디오 처리 워크플로에만 적용됩니다..

  • 출력

예시 JSON 정의

마지막 업데이트

도움이 되었나요?