“请求过多”消息,“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} 

有什么想法是什么原因造成的吗?

1 个赞

最可能的解释是错误消息中说明的那个。您的站点正在向 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 备份以来,我没有发布任何新内容,也没有更新任何其他插件,因此回滚是查看是否修复的快速方法。

1 个赞

感谢您提供详细的回复,非常感谢!

看起来您回滚了整个网站?是这样吗?您是否绝对确定唯一更改的是 WP Discourse 插件?如果是,您如何确定?升级是如何执行的?回滚整个网站也会回滚所做的任何其他更改。另外,您是否使用了启用块的主题,以及是否使用了 WP Discourse Comments Block?

1 个赞

我唯一能想到的是 functions.php 中的这个代码块,也许是这里的问题?

add_filter( 'discourse_comment_html', function () {
		 ob_start(); ?	
				
				
					
						{avatar_url}
						{username} avatar
						comment-avatar
						40 40 loading="lazy"
					
					
						
							{username}
						
					
						{comment_created_at}
							{comment_created_at}
						
					
				

				{comment_body}
			
		
	

	return ob_get_clean();
} );

这不应该导致这种行为。

我已经在各种实例上重新测试了2.5.7,无法重现此行为。此外,我很难理解该版本中的更改如何导致类似情况。

我们刚刚发布了2.5.8。您能否仅更新插件,不做任何其他操作,然后看看问题是否重现?

1 个赞

好的,我这个周末会做。

1 个赞

我昨天升级了所有东西,到目前为止没有任何问题。

1 个赞

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