结论是:把额度按“可回滚程度”而不是按团队职级来排。也就是先跑那些出错后能立刻撤回、不占用发布通道、不影响对外可见内容的查询;把会触发发布、通知或外部系统写入的查询压到后面。这个顺序在大多数共用额度场景下成立,但它有一个明确前提:各团队查的是同一套内容库或同一批账号。如果两个团队其实操作的是完全隔离的两套系统,只是账单合在一起,那么优先顺序应该按各自的截止时间排,而不是按可回滚程度排——这是最容易让上述结论失效的反例。
共用额度时,真正稀缺的往往不是查询次数,而是查询带来的副作用。可以按痕迹把查询分成三档:
优先顺序应当是:无痕只读 → 留痕只读 → 写入型。这样做的好处是,即使额度在中途耗尽,前面的结果仍然可用,后面的写入型任务可以整体推迟到下一个额度周期,不会留下“改了一半”的状态。
你提到的场景是旧内容、旧系统或旧合作关系需要退出,但保留仍有价值的部分。这时常规的“先只读后写入”要临时调整:先跑一次范围确认查询,把所有候选对象列出来,再跑依赖检查查询,找出哪些对象被其他页面、导航或外部系统引用。顺序变成:
第 3 步单独拆出来,是因为它可回滚:标记错了,改回来即可,不会让读者看到 404。把这一步提前,能让后续的写入型查询基于一份已经确认过的保留清单,减少返工。
假设两个团队共用一份月度查询额度,A 团队要下线 200 篇旧文,B 团队要发布 30 篇新文。如果按职级或按提交时间排,很可能先跑 A 的批量下线,额度用掉大半,B 的发布被推迟,而 A 的下线里其实有 40 篇需要保留。更稳的做法是:先让 A 跑只读的范围与依赖查询,确认那 40 篇保留对象;把保留标记作为一次写入;剩余额度再分给 B 的发布查询。结果是 A 的下线被拆成两个周期,但 B 的发布不受影响,且不会误删仍需保留的内容。这个例子里数字只是用来说明比较方法,不是实测数据。
如果某次查询量突然归零,不要直接认定是优先顺序起了作用。常见解释还有:上游系统在维护、查询条件被改窄、凭证过期、或者额度被另一个团队提前用完。要区分这些原因,可以看同一批查询在改动顺序前后是否都返回了相同结构的结果;如果结构变了,问题多半在条件或凭证,而不是顺序。
先让每个团队各写一句“本次查询会改变什么”,把带写入的查询单独列出来,再按可回滚程度排序。执行第一轮后,检查写入型查询是否真的只动了预期对象;如果发现范围超出预期,就回到范围确认查询,而不是继续加大额度。这样调整一轮之后,你就能判断共用额度到底该按团队切分,还是按查询类型切分。