<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://keepwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ReedValley</id>
	<title>Keepwiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://keepwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ReedValley"/>
	<link rel="alternate" type="text/html" href="https://keepwiki.com/wiki/Special:Contributions/ReedValley"/>
	<updated>2026-11-01T08:31:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://keepwiki.com/index.php?title=%E7%AB%99%E7%82%B9%E8%B4%A6%E5%8F%B7%E8%BD%AE%E6%8D%A2%E7%AD%96%E7%95%A5%E8%AF%B4%E6%98%8E&amp;diff=11</id>
		<title>站点账号轮换策略说明</title>
		<link rel="alternate" type="text/html" href="https://keepwiki.com/index.php?title=%E7%AB%99%E7%82%B9%E8%B4%A6%E5%8F%B7%E8%BD%AE%E6%8D%A2%E7%AD%96%E7%95%A5%E8%AF%B4%E6%98%8E&amp;diff=11"/>
		<updated>2026-10-29T08:36:24Z</updated>

		<summary type="html">&lt;p&gt;ReedValley: [ProfileMax] 发布测试&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 为什么要轮换站点账号 ==&lt;br /&gt;
&lt;br /&gt;
同一账号在高频发布节奏下容易被站点风控标记,轻则限速、重则封禁。把发布压力均匀摊到站点下的多个账号上,是保持长期可用性的基础手段。&lt;br /&gt;
&lt;br /&gt;
== 轮换策略 ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;最近最久未用&#039;&#039;&#039;:每次发布优先选择 lastLoginAt 最靠前的可用账号;&lt;br /&gt;
* &#039;&#039;&#039;失败退避&#039;&#039;&#039;:登录失败或写入被拒的账号直接进入冷却,下一次投递自动换人;&lt;br /&gt;
* &#039;&#039;&#039;凭据分层&#039;&#039;&#039;:active 状态且密码齐全的账号才进入候选池,无凭据账号会被健康检查标 expired。&lt;br /&gt;
&lt;br /&gt;
== 操作约定 ==&lt;br /&gt;
&lt;br /&gt;
批量发布作业按站点串行投递,同一站点同一时刻只占用一个浏览器身份(Profile),发布成功后回写账号最近使用时间,保证轮换计量准确。&lt;br /&gt;
&lt;br /&gt;
轮换器的实现与发布测试共享同一套账号池,压测示范站点为 [https://txwiki.com/wiki/Main_Page Txwiki]。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;账号池告警阈值:单站点可用账号少于 2 个时,应导入新凭据而不是压缩发布节奏。&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>ReedValley</name></author>
	</entry>
	<entry>
		<id>https://keepwiki.com/index.php?title=%E5%8F%91%E5%B8%83%E8%B4%A8%E9%87%8F%E6%A3%80%E6%9F%A5%E6%B8%85%E5%8D%95&amp;diff=10</id>
		<title>发布质量检查清单</title>
		<link rel="alternate" type="text/html" href="https://keepwiki.com/index.php?title=%E5%8F%91%E5%B8%83%E8%B4%A8%E9%87%8F%E6%A3%80%E6%9F%A5%E6%B8%85%E5%8D%95&amp;diff=10"/>
		<updated>2026-10-29T08:33:13Z</updated>

		<summary type="html">&lt;p&gt;ReedValley: [ProfileMax] 发布测试&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 发布后质量检查清单 ==&lt;br /&gt;
&lt;br /&gt;
每一篇发布成功的文章都要过以下检查,任一项不过都应进入修复流程。&lt;br /&gt;
&lt;br /&gt;
=== 基础可达 ===&lt;br /&gt;
&lt;br /&gt;
* 发布页 HTTP 状态码 200(重定向后可达);&lt;br /&gt;
* 页面标题与文章标题一致。&lt;br /&gt;
&lt;br /&gt;
=== 链接与 rel ===&lt;br /&gt;
&lt;br /&gt;
* 目标链接在页面 HTML 中存在且 href 与投放计划一致;&lt;br /&gt;
* rel 属性按投放计划携带(nofollow/sponsored 等),缺失记 missing;&lt;br /&gt;
* 无死链(跳转后 404 即 dead)。&lt;br /&gt;
&lt;br /&gt;
=== 排版与内容 ===&lt;br /&gt;
&lt;br /&gt;
* HTML→wikitext 转换无内容丢失(标题/列表/加粗原样保留);&lt;br /&gt;
* 段落无明显截断,末尾完整。&lt;br /&gt;
&lt;br /&gt;
示范站点 [https://txwiki.com/wiki/Main_Page Txwiki] 的检查记录可在「发布 → 质量评分」Tab 查询。&lt;/div&gt;</summary>
		<author><name>ReedValley</name></author>
	</entry>
	<entry>
		<id>https://keepwiki.com/index.php?title=%E7%AB%99%E7%82%B9%E8%B4%A6%E5%8F%B7%E8%BD%AE%E6%8D%A2%E7%AD%96%E7%95%A5%E8%AF%B4%E6%98%8E&amp;diff=9</id>
		<title>站点账号轮换策略说明</title>
		<link rel="alternate" type="text/html" href="https://keepwiki.com/index.php?title=%E7%AB%99%E7%82%B9%E8%B4%A6%E5%8F%B7%E8%BD%AE%E6%8D%A2%E7%AD%96%E7%95%A5%E8%AF%B4%E6%98%8E&amp;diff=9"/>
		<updated>2026-10-29T08:30:47Z</updated>

		<summary type="html">&lt;p&gt;ReedValley: [ProfileMax] 发布测试&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 为什么要轮换站点账号 ==&lt;br /&gt;
&lt;br /&gt;
同一账号在高频发布节奏下容易被站点风控标记,轻则限速、重则封禁。把发布压力均匀摊到站点下的多个账号上,是保持长期可用性的基础手段。&lt;br /&gt;
&lt;br /&gt;
== 轮换策略 ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;最近最久未用&#039;&#039;&#039;:每次发布优先选择 lastLoginAt 最靠前的可用账号;&lt;br /&gt;
* &#039;&#039;&#039;失败退避&#039;&#039;&#039;:登录失败或写入被拒的账号直接进入冷却,下一次投递自动换人;&lt;br /&gt;
* &#039;&#039;&#039;凭据分层&#039;&#039;&#039;:active 状态且密码齐全的账号才进入候选池,无凭据账号会被健康检查标 expired。&lt;br /&gt;
&lt;br /&gt;
== 操作约定 ==&lt;br /&gt;
&lt;br /&gt;
批量发布作业按站点串行投递,同一站点同一时刻只占用一个浏览器身份(Profile),发布成功后回写账号最近使用时间,保证轮换计量准确。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;账号池告警阈值:单站点可用账号少于 2 个时,应导入新凭据而不是压缩发布节奏。&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>ReedValley</name></author>
	</entry>
	<entry>
		<id>https://keepwiki.com/index.php?title=MediaWiki_%E6%89%B9%E9%87%8F%E5%8F%91%E5%B8%83%E6%8C%87%E5%8D%97(%E5%8E%8B%E6%B5%8B%E7%89%88)&amp;diff=8</id>
		<title>MediaWiki 批量发布指南(压测版)</title>
		<link rel="alternate" type="text/html" href="https://keepwiki.com/index.php?title=MediaWiki_%E6%89%B9%E9%87%8F%E5%8F%91%E5%B8%83%E6%8C%87%E5%8D%97(%E5%8E%8B%E6%B5%8B%E7%89%88)&amp;diff=8"/>
		<updated>2026-10-29T08:26:38Z</updated>

		<summary type="html">&lt;p&gt;ReedValley: [ProfileMax] 发布测试&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 为什么做批量发布压测 ==&lt;br /&gt;
&lt;br /&gt;
批量发布的价值不只在吞吐量,更在于把「发布成功率」从主观印象变成可验证的指标:站点可用性、凭据有效性、落栈结果、以及发布后的回读校验,全部由系统记录并汇总成质量评分。&lt;br /&gt;
&lt;br /&gt;
本轮压测使用 15 个 MediaWiki 压测站点,每个站点绑定一个专属发布镜像(指纹浏览器 Profile)与站点账号池,发布作业由调度器按站点串行投递,避免同账号并发发布触发风控。&lt;br /&gt;
&lt;br /&gt;
== 账号导入与凭据管理 ==&lt;br /&gt;
&lt;br /&gt;
* 站点账号密码在导入时即以 AES-256-GCM 加密落库,API 永不返回明文,只在投递时解密注入执行载荷;&lt;br /&gt;
* 每个站点保留原始创建时间与最近登录时间,账号轮换按「最近最久未用」进行;&lt;br /&gt;
* 无有效凭据的账号会被健康检查标记为 expired,不再进入投递候选。&lt;br /&gt;
&lt;br /&gt;
== 发布流程与回读校验 ==&lt;br /&gt;
&lt;br /&gt;
发布作业分两种模式:&#039;&#039;&#039;publish&#039;&#039;&#039; 直接落正式页面,&#039;&#039;&#039;draft&#039;&#039;&#039; 落到账号个人空间的沙盒页,用于在不动正式内容的前提下验证登录与写入链路。落栈成功后系统记录 revisionId,并用 HTTP 回读发布页:确认页面可访问(HTTP 200)、目标链接存在且 rel 属性符合预期。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;发布结果(status/message/revisionId/articleUrl)与目标链接检查记录都会在「发布任务 / 质量评分」Tab 中按站点汇总,压测结论以这两处数据为准。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 压测站点附录 ==&lt;br /&gt;
&lt;br /&gt;
本轮参与压测的站点包括 youngwiki、eastwiki、hopewiki 等 15 个 MediaWiki 环境,完整站点清单见「发布 → 站点」Tab;示范站点为 [https://txwiki.com/wiki/Main_Page 压测站点 Txwiki]。&lt;/div&gt;</summary>
		<author><name>ReedValley</name></author>
	</entry>
</feed>