Discourseサーバーに2番目のメッセージが投稿されていません

Discourse フォーラムサーバーにこのAPIを使用して複数のメッセージを送信しようとしています。

私の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();

	   
		
		
		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アカウントにログインした後、最初のメッセージのみが受信され、2番目のメッセージが見つからないことです。

後で、それらの間に20秒の遅延を挿入すると(つまり、コメントで)、両方を受信できることがわかりました。

何が間違っていますか?

私のバージョン:

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

@lenny1様、投稿の一部は機密情報が含まれていたため、編集しました。APIキーやパスワードなどを公開しないでください。

「いいね!」 2

レート制限に達している可能性があります。それが原因である場合、Discourseは429応答を返すはずです。これに関する情報は、Discourseのエラーログにある可能性があります。それらは、管理者 / ログ / エラーログで見つけることができます。

そこにエラーが表示されない場合は、DiscourseがJavaコードを実行しているサーバーに送信する応答をログに記録してみてください。そこに役立つ情報が含まれている可能性があります。

「いいね!」 3

使用しているアカウントによっては、「rate limit create topic」(トピック作成のレート制限)または「rate limit create post」(投稿作成のレート制限)に達している可能性があります。

現在、1秒以内に11件の投稿を連続で送信するスクリプトを作成していますが、これは正常に動作しています。ただし、これらの投稿はレート制限が適用されていない可能性のあるシステムアカウントによって送信されています。

「いいね!」 3

返信ありがとうございます。
はい、Discourseから次のような応答がありました。
「トピックの作成が速すぎます。もう一度試す前に15秒お待ちください。」
管理ページでレート制限を変更し、投稿とトピックの作成を0に設定することで問題を解決しました。
さて、質問ですが、特定の Счётのみレート制限を設定することは可能でしょうか?

いいえ、特定のアカウントにレート制限を設定することはできません。ただし、rate limit create topic および rate limit create post の設定はスタッフアカウントには適用されません。これがあなたのユースケースに役立つかもしれません。

「いいね!」 2

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