message":"Слишком много запросов","discourse_topic_id"

Сегодня я обновился до последней версии WP-Discourse и впервые начал видеть эти ошибки:

[2025-05-29 13:22:11] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3886","wp_post_id":3151,"http_code":429} 
[2025-05-29 13:22:11] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3888","wp_post_id":3026,"http_code":429} 
[2025-05-29 13:22:11] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3889","wp_post_id":2374,"http_code":429} 
[2025-05-29 13:22:12] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3890","wp_post_id":2288,"http_code":429} 
[2025-05-29 13:22:12] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3891","wp_post_id":2083,"http_code":429} 
[2025-05-29 13:22:13] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3892","wp_post_id":2031,"http_code":429} 
[2025-05-29 13:22:14] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3894","wp_post_id":1495,"http_code":429} 
[2025-05-29 13:22:15] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3895","wp_post_id":975,"http_code":429} 
[2025-05-29 13:22:15] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3896","wp_post_id":841,"http_code":429} 
[2025-05-29 13:22:15] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3897","wp_post_id":783,"http_code":429} 
[2025-05-29 13:22:15] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"4023","wp_post_id":730,"http_code":429} 

Есть какие-то идеи, что вызывает это?

Наиболее вероятное объяснение содержится в сообщении об ошибке. Ваш сайт отправляет слишком много запросов к конечной точке комментариев Discourse.

  • Часто ли обновляются страницы, на которых отображаются комментарии Discourse?
  • Испытывает ли ваш сайт повышенную по сравнению с обычной нагрузку?
  • Продолжают ли появляться сообщения в логах?
  • Используете ли вы функцию кэширования комментариев WP Discourse? Если нет, то её включение, скорее всего, поможет решить проблему. Вы можете включить кэширование комментариев в настройках.

Я смог откатиться к предыдущей версии 2.5.6, и это полностью решило проблему без каких-либо других изменений:

image

В версии 2.5.7 на скриншоте ниже отображалось состояние «Отключено», если я не нажимал кнопку «Сохранить» каждый раз при переходе на эту страницу. Даже в этом случае, если я переключался на другую вкладку и возвращался на главную страницу плагина, статус снова менялся на «Отключено». После отката к версии 2.5.6 статус ВСЕГДА отображается как «Вы подключены к Discourse!», независимо от того, покидаю я эту страницу/вкладку или нет.

Мне это показалось странным, но я подумал, что, возможно, так было и раньше, и я просто не заметил этого, поэтому у меня нет скриншота «до», так как я просто закрыл уведомление. После отката к версии 2.5.6 я понял, что это действительно не было нормой и произошло только после обновления до версии 2.5.7.

*** Часто ли обновляются страницы, на которых отображаются комментарии Discourse?***
(Нет, думаю, нет. Ничего не менялось, кроме нажатия кнопки обновления плагина.)

*** Испытывает ли ваш сайт нагрузку выше обычной?***
(Нет, трафик такой же, как и в каждый четверг.)

*** Продолжаются ли сообщения в логах?***
(Да, они продолжались, поэтому я откатился к версии 2.5.6. Я думал, что со временем проблема решится сама собой, но размер лога вырос примерно до двух страниц.)

*** Используете ли вы функцию кэширования комментариев WP Discourse? Если нет, это, вероятно, поможет в данной ситуации. Вы можете включить кэширование комментариев в настройках.***
(Нет, мне никогда не приходилось этого делать. Никакие настройки WP-Discourse не менялись уже около года. Моим единственным действием по обслуживанию было просто обновление до новых версий.)

Я не публиковал новый контент после ночного резервного копирования WordPress и не обновлял другие плагины, поэтому откат стал быстрым способом проверить, решит ли это проблему.

Спасибо за подробный ответ, мы это ценим!

Похоже, вы откатили весь свой сайт? Так ли это? Вы абсолютно уверены, что изменился только плагин WP Discourse? Если да, то что вас в этом убеждает? Как было выполнено обновление? Откат всего сайта также отменил бы любые другие внесённые изменения. Кроме того, используете ли вы тему с поддержкой блоков и используете ли вы блок комментариев WP Discourse?

Единственное, что приходит в голову — возможно, этот блок в functions.php?

add_filter( 'discourse_comment_html', function () {
	ob_start(); ?>
	<li class="comment depth-1">
		<article class="comment-body">
			<header class="comment-header">
				<img
					src="{avatar_url}"
					alt="{username} avatar"
					class="comment-avatar"
					width="40" height="40" loading="lazy"
				/>
				<div class="comment-meta">
					<b class="fn">
						<a href="{topic_url}" rel="external">{username}</a>
					</b>
					<time datetime="{comment_created_at}">
						{comment_created_at}
					</time>
				</div>
			</header>

			<div class="comment-content">
				{comment_body}
			</div>
		</article>
	</li>
<?php
	return ob_get_clean();
} );

Это не должно вызывать такое поведение.

Я повторно протестировал версию 2.5.7 на различных экземплярах, но не смог воспроизвести эту проблему. Более того, мне сложно понять, как изменения в этой версии могли привести к чему-то подобному.

Мы только что выпустили версию 2.5.8. Не могли бы вы обновить только плагин, ничего больше, и проверить, воспроизводится ли проблема?

Хорошо, я сделаю это в эти выходные.

Вчера я всё обновил, и пока никаких проблем.