pfaffman
(Jay Pfaffman)
2016 年7 月 24 日 15:50
1
I have a client for whom embedded youtube videos are missing. They appear in composer’s preview, but when the messages are saved, they disappear. They are working fine in try.discourse.org . I tried whitelisting youtu.be and changing the URL to a youtube.com url too. Neither solved the problem.
The site is running v1.6.0.beta11 +141
2 个赞
Have you tried reaching YouTube from your client’s server?
3 个赞
pfaffman
(Jay Pfaffman)
2016 年7 月 25 日 18:27
3
It seems that the problem was that recent Discourse updates have caused my DOI resolver plugin to muck things up. (I disabled a couple other things too, but it was definitely some plugin. . . )
1 个赞
有人在重新烘焙帖子时遇到 youtube.com 返回 429 请求过多错误的问题吗?
[1] pry(main)> posts = Post.where("raw like '%youtube%'").count
=> 5237
3 个赞
我也遇到过这个问题,这应该是一个临时的 IP 封禁(我相信是 1 小时),在此期间,所有重新生成的帖子中的 YouTube 内嵌框都会失败。
或许应该实施某种机制,限制每小时对 YouTube 的请求次数不超过 x 次,以防止重新生成时出现问题?
4 个赞
Iceman
(Iceman)
2020 年5 月 23 日 18:57
6
最近,在对我的 Discourse 安装进行一系列更改和升级后,还剩下两个问题未解决。一个是无法重建数据容器 ,我正在尝试解决;另一个是除了 YouTube URL 外,所有一一 box 都能正常工作。
在服务器和容器内部,我可以使用 CURL 访问 YouTube。我该如何确认这是否是由于临时 IP 封禁导致的?
编辑 :可以确认,无论是重建(App)还是重新生成(Rebake)都不会影响此问题。
编辑 2 :通过搜索,我看到 @jomaxro 在这里 评论说 CloudFlare 之类的内容会影响 Onebox……CDN 会影响单个 Onebox 吗?我尝试将其设置为开发模式,但没有变化。
编辑 3 :尝试移除所有插件,但没有任何变化。(此外,由于进程似乎相互干扰,我无法执行重新生成操作。)
编辑 4 :尝试了 @Overgrow 的命令,是的,确实 我遇到了问题
[1] pry(main)> posts = Post.where("raw like '%youtube%'").count
=> 72674
我很难运行重新生成命令,因为我的容器报出了以下错误:
PG::UnableToSend: no connection to the server
PG::ConnectionBad: PQconsumeInput() SSL SYSCALL error: EOF detected
我需要停止某些服务吗?
3 个赞
neounix
(Dark Matter)
2020 年5 月 25 日 14:42
8
一种方法可能是简单地通过模式匹配重新烘焙,并设置一个延迟。
Iceman
(Iceman)
2020 年5 月 25 日 15:12
9
类似:
rake posts:rebake_match["%youtube%",regex,10]
?
我的主要问题是无法运行该命令
1 个赞
riking
(Kane York)
2020 年5 月 25 日 17:13
10
这或许可以缓慢地重新生成:Post.where("raw like '%youtube%'").where("cooked NOT LIKE '%lazyYT%'").update_all(baked_version: nil)
6 个赞
Iceman
(Iceman)
2020 年5 月 25 日 17:20
11
首先,非常感谢你抽出时间帮助我 @riking 。
我运行了该命令,得到了我推测是缺失帖子数量的结果:22462。根据命令的最后部分,是否可以安全地认为它正在后台运行?
1 个赞
riking
(Kane York)
2020 年5 月 25 日 17:25
12
是的,有一个每 15 分钟运行一次的作业,会重新处理 SiteSetting.rebake_old_posts_count 所指定的帖子。
4 个赞
Iceman
(Iceman)
2020 年5 月 25 日 20:18
13
想问一个问题,无论过了多久,这个数字都不会减少。有没有办法让我跟进或强制执行那个任务?
riking
(Kane York)
2020 年5 月 25 日 20:19
14
嗯,可能我搞错了 这个的结果是什么?Post.where("raw like '%youtube%'").where("cooked LIKE '%lazyYT%'").count
3 个赞
Iceman
(Iceman)
2020 年5 月 25 日 20:23
15
当前状态:
旧命令:
[2] pry(main)> Post.where("raw like '%youtube%'").where("cooked NOT LIKE '%lazyYT%'").update_all(baked_version: nil)
=> 23257
新命令:
[1] pry(main)> Post.where("raw like '%youtube%'").where("cooked LIKE '%lazyYT%'").count
=> 49458
编辑:过了一段时间后,我可以确认第二个命令的结果保持静态(数值不变),而第一个命令的结果持续增加。
1 个赞
neounix
(Dark Matter)
2020 年5 月 26 日 04:29
16
匹配帖子中的字符串并不需要使用正则表达式。简单的字符串搜索就足以匹配 youtube(例如)。在此示例中,每个包含字符串 youtube 的帖子都将被重新烘焙,每 100 秒处理一个(非常慢……)
大约过去了 100 秒:
我会让它继续运行,估计大约 76,200 秒后(上下浮动),这个 rake 任务就会完成
看来我应该把这个示例的延迟设置为 10 秒
2 个赞
neounix
(Dark Matter)
2020 年5 月 26 日 10:00
18
Iceman:
试过了,但遗憾的是没有成功。
抱歉 @iceman ,
作为一个有点极客的人,我不太明白“没有成功”具体指什么 (技术信息不够详细)
你的意思是运行 rake 命令时出现了 Rails 错误吗?
如果是这样,请贴出完整的 Rails 错误信息。
或者,Rails 任务是否执行成功?如果成功了,根据 rake 任务统计有多少帖子被重新烘焙(rebaked)?
谢谢。
例如,我的一个小型(非常慢,延迟 100 秒)的重新烘焙任务示例(针对此主题)已经运行了好几个小时:
目前进度为 209/762 总数……
你的重新烘焙任务进度是多少?
2 个赞
Iceman
(Iceman)
2020 年5 月 26 日 10:44
19
请原谅我之前的信息有误!
我的意思是,我先在一个小样本上运行了一次,然后重新运行,但数字没有变化。
例如:我运行了命令,当时有 76,000 篇帖子,处理了 200 篇后停止;再次运行后,新数字变成了 76,200(也许我的用户在此期间添加了 400 篇包含 YouTube 的帖子……但我不确定)。
现在我再次运行以观察进展,但这可能需要几天时间 :P(目前已有 76,500 次访问……)
由于其他人没有遇到此问题,我正在尝试思考我的变量,基本上包括:
更换了机器(所以这 可能 是 YouTube 的速率限制?)
在新安装上恢复了 Discourse 备份(这 不应该 相关,但到了这一步,我几乎在押注所有可能变动因素)
双容器安装(原以为数据重建有问题,但 多亏了这条信息 来自 @Falco ,我现在知道这是“正常”的)
按照这里的 CDN 教程在其上部署了 CloudFlare。
1 个赞
neounix
(Dark Matter)
2020 年5 月 26 日 10:53
20
[quote=“Iceman, post:19, topic:47718”]
德语原文:我运行了该命令,当时我有 76000 篇帖子。它处理了 200 篇后停止,接着又运行了一次,新的数量变成了 76200(是的,也许我的用户在此期间添加了 400 篇包含 YouTube 的帖子……但……我不确定)。[/quote]
抱歉我有点愚钝 您的意思是您正在运行这个 rake 任务吗?
rake posts:rebake_match['youtube',string,10]
准确写出您输入和看到的内容非常重要。
您运行的确切 rake 任务是什么?使用了哪些参数?
当您运行该 rake 任务时,任务开始重新烘焙(rebake)后的前几行输出是什么?
请提供详细信息、截图、从命令行复制粘贴的内容等。
2 个赞
Iceman
(Iceman)
2020 年5 月 26 日 11:18
21
抱歉,@neounix ,您完全正确。
让我重新表述一下:
我运行了以下命令:
root@cont-web-only:/var/www/discourse# time rake posts:rebake_match['youtube',string]
76597 / 76594 (100.0%)-
76597 篇帖子处理完成!
然后我想:“好吧,显然你需要添加计时器,否则我们无法测试‘速率限制理论’”,于是我尝试了您发布的那个命令:
root@cont-web-only:/var/www/discourse# time rake posts:rebake_match['youtube',string,100]
216 / 76594 (0.2%)-
我随即停止它,去检查是否有变化。似乎没有任何变化,于是我心想:“好吧,让我再运行一次,看看情况如何”:
root@cont-web-only:/var/www/discourse# time rake posts:rebake_match['youtube',string,100]
116 / 76598 (0.2%)-
这个命令正在运行中。所以我的论点是,在使用另一个 rebake 时,帖子总数并没有减少。(我可能是错的,甚至很可能确实是错的,我的这个逻辑可能有问题)。
1 个赞