# 두 번째 메시지가 Discourse 서버에 게시되지 않음

**URL:** https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094
**Category:** Development
**Tags:** rest-api
**Created:** [9월 15, 2023, 5:20오전 UTC](https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094 "2023-09-15T05:20:23Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![lenny1](https://avatars.discourse-cdn.com/v4/letter/l/df788c/32.png) [@lenny1](https://meta.discourse.org/u/lenny1)
#### Post date: [9월 15, 2023, 5:20오전 UTC](https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094/1 "2023-09-15T05:20:24Z")

</div>

Discourse 포럼 서버에 이 API를 사용하여 메시지 2개 이상을 보내려고 합니다:

> **[Discourse API Docs](https://docs.discourse.org/#tag/Posts/operation/listPosts)**

제 Java 코드:

```
public void test() 
		throws UnirestException, JsonMappingException, JsonProcessingException, InterruptedException {
	
	Unirest.config().cookieSpec(CookieSpecs.IGNORE_COOKIES);
	
	Map<String, String> header = new HashMap<>();
	header.put("Content-Type", "application/json");
	header.put("Api-Key", [redacted]);
	header.put("Api-Username", [redacted]);	    
    header.put("Accept", "application/json");

	
	Unirest.post(URL + "/posts.json")
			.headers(header)
			.queryString("title","1st Msg")
			.queryString("raw", "Message 1")
			.queryString("target_recipients", "Kenny")
			.queryString("archetype", "private_message")
			.asJson();

	
   // TimeUnit.SECONDS.sleep(20);
	
	
	Unirest.post(URL + "/posts.json")
			.headers(header)
			.queryString("title","2nd Msg")
			.queryString("raw", "Message 2")
			.queryString("target_recipients", "Kenny")
			.queryString("archetype", "private_message")
			.asJson();
}

```

위 테스트에서 두 메시지 모두 성공적으로 전송되었습니다(예외가 발생하지 않았습니다). 문제는 Discourse 계정으로 로그인한 후 1번째 메시지만 수신되고 2번째 메시지가 사라져 있는 것을 발견했습니다.

나중에 두 요청 사이에 20초의 지연(즉, 주석 처리된 부분)을 넣으면 서버가 두 메시지 모두를 수신할 수 있음을 알게 되었습니다.

무엇이 잘못된 것일까요?

사용 중인 버전:

- Discourse 3.1.0.beta2
- Java 11
- unirest-java 3.14.2

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [9월 15, 2023, 5:21오전 UTC](https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094/2 "2023-09-15T05:21:00Z")

</div>

안녕하세요, @lenny1 – 게시글 중 민감한 정보가 포함된 부분을 삭제했습니다. API 키나 비밀번호 등을 공개적으로 게시하지 마세요.

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [9월 15, 2023, 6:33오전 UTC](https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094/3 "2023-09-15T06:33:10Z")

</div>

> [@lenny1](#):
>
> 나중에 두 요청 사이에 20초의 지연(즉, 코멘트에서)을 넣으면 서버가 두 요청을 모두 받을 수 있다는 것을 발견했습니다.
> 
> 무엇이 문제인가요?

요청 제한(rate limit)에 도달하고 있을 수 있습니다. 이것이 원인이라면 Discourse가 `429` 응답을 반환해야 합니다. 이 문제에 대한 정보가 Discourse 오류 로그에 있을 수 있습니다. 로그는 관리자 / 로그 / 오류 로그(Admin / Logs / Error Logs)에서 찾을 수 있습니다.

거기서 오류가 표시되지 않는다면, Java 코드를 실행 중인 서버가 Discourse에서 받은 응답을 로깅해 보세요. 유용한 정보를 얻을 수 있을 것입니다.

---

<div class="post-metadata">

### Author: ![packman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/packman/32/289322_2.png) [@packman](https://meta.discourse.org/u/packman)
#### Post date: [9월 15, 2023, 7:04오전 UTC](https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094/4 "2023-09-15T07:04:21Z")

</div>

메시지를 게시하는 데 사용하는 계정에 따라 ‘rate limit create topic’ 또는 ‘rate limit create post’ 오류가 발생할 수 있습니다.

저는 약 1초 이내에 11개의 게시물을 연속으로 전송하는 스크립트를 작성하고 있으며, 이는 정상적으로 작동하고 있습니다. 다만, 시스템 계정에서 전송되고 있어 해당 계정에는 속도 제한이 적용되지 않을 수 있습니다.

---

<div class="post-metadata">

### Author: ![lenny1](https://avatars.discourse-cdn.com/v4/letter/l/df788c/32.png) [@lenny1](https://meta.discourse.org/u/lenny1)
#### Post date: [9월 15, 2023, 8:40오전 UTC](https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094/5 "2023-09-15T08:40:41Z")

</div>

답변 감사합니다.  
네, Discourse에서 다음과 같은 응답을 받았습니다:  
“주제를 너무 빠르게 생성하고 있습니다. 다시 시도하기 전에 15초를 기다려 주세요.”  
관리자 페이지에서 속도 제한을 변경하여 게시물 및 주제 생성 제한을 0으로 설정함으로써 문제를 해결했습니다.  
이제 제 질문은 특정 계정에만 속도 제한을 설정할 수 있는지 여부입니다.

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [9월 15, 2023, 5:03오후 UTC](https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094/6 "2023-09-15T17:03:37Z")

</div>

> [@lenny1](#):
>
> 이제 제 질문은 특정 계정에만 속도 제한을 설정할 수 있는지 여부입니다.

아니요, 특정 계정에 속도 제한을 설정할 수 없습니다. 다만 `rate limit create topic` 및 `rate limit create post` 설정은 스태프 계정에는 적용되지 않습니다. 이것이 사용 사례에 도움이 될 수 있습니다.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [10월 15, 2023, 5:04오후 UTC](https://meta.discourse.org/t/2nd-message-not-posted-to-discourse-server/279094/7 "2023-10-15T17:04:32Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
