속도를 줄이세요. 요청이 너무 많습니다.
5초 후에 다시 시도해 주세요.
에러 코드: user_10_secs_limit.
await ajax(/t/${this.args.topic.id}.json);를 사용하는 테마를 만들었습니다. 과도한 요청으로 인해 속도 제한이 발생하고 있습니다. 이를 어떻게 피할 수 있을까요? 제한이 IP 기반이 아닌 사용자 수준 제한으로 표시되는 것을 확인했습니다.
속도를 줄이세요. 요청이 너무 많습니다.
5초 후에 다시 시도해 주세요.
에러 코드: user_10_secs_limit.
await ajax(/t/${this.args.topic.id}.json);를 사용하는 테마를 만들었습니다. 과도한 요청으로 인해 속도 제한이 발생하고 있습니다. 이를 어떻게 피할 수 있을까요? 제한이 IP 기반이 아닌 사용자 수준 제한으로 표시되는 것을 확인했습니다.
Cloudflare 같은 로드 밸런서 뒤에서 서비스되고 있어서 Discourse가 사용자의 실제 IP 주소를 파악하지 못하고 있는 건가요?
간단히 grep으로 검색해 봤는데, user_10_secs_limit은 스펙 파일 외에는 코드에서 찾을 수 없습니다. 현재 보고 계신 오류와 무관하게 IP와 관련이 있을 것 같다는 의심이 듭니다.
여기 - grep로 찾을 수 없어요 ![]()
error_code: "#{error_code_identifier}_10_secs_limit",
https://github.com/discourse/discourse/blob/main/lib/request_tracker/rate_limiters/user.rb에서 오고 있습니다.
@truman 님, 테마 컴포넌트가 많은 토픽에 대해 이 작업을 수행하고 있나요? 정확히 어떤 것을 이루고자 하시나요? 예를 들어 토픽에 태그를 붙인 후 단일 호출로 태그를 통해 가져오는 방식으로 호출을 통합해 보거나, 캐시 메커니즘을 설정하는 방법을 찾아보시는 것이 좋습니다.
아! 간단한 걸 놓치고 있었구나…
홈페이지에 표시할 수 있도록 각 토픽의 리액션을 가져오고 싶습니다. 예를 들어:

플러그인에서 이를 직렬화(serialise)해야 합니다. 이렇게 하면 모든 쿼리를 피할 수 있고, 필요한 데이터를 한 번에 가져올 수 있습니다.
토픽 목록의 각 토픽마다 쿼리를 실행해서는 안 됩니다. 그렇게 하면 확장성이 확보되지 않습니다.
이 방식이 적용된 예시로 Topic List Previews를 참고해 보세요.
all-the-plugins 저장소를 가져온 후 add_to_serializer를 검색해 보세요