作者stevel (环游世界)
标题[转录][常识] 海水倒灌的由来 (Part 2)
时间Sun Apr 13 16:59:57 2003
※ [本文转录自 stevel 信箱]
作者:
[email protected]
标题: [常识] 海水倒灌的由来 (Part 2)
时间: Sun Apr 13 16:59:19 2003
作者: stevel (环游世界) 看板: stevel
标题: [常识] 海水倒灌的由来 (Part 2)
时间: Sun Apr 13 06:21:24 2003
☆
倒灌流程
批踢踢站方为了简化转信上的设定,写了一个程式叫做 inndBM,
用来产生一部分的转信设定档案。
这一小部分的转信设定有什麽用途呢?仔细听好了。
前一篇曾经提到过,转信是靠 news server 做为中继站,因此
所有参与转信的 BBS 都会将文章送给 news server。但是此时
news server 要怎样将文章再转手给其他 BBS 站呢?
一般的作法是每个 BBS 站定期去 news server 把新的文章抓回来。
但怎样才是「新」的文章呢?其实在 news server 每个 newsgroup
里的文章都编有流水号,利用这个号码,BBS 就可以知道先前抓过
哪些文章,以及下一次要从哪里开始抓取。
回到故事的起点,那个 inndBM 的程式,每天 3:00AM 会执行一次,
它会将所有的流水号都归零,然後再连去 news server 查看最新的
流水号,并纪录下来。
万一此时因故连不上 news server (其实电机系的对外网路常有不稳),
无法取得最新的流水号,那会有什麽样的後果呢?
那就只剩下归零的效果,亦即 BBS 会以为所有的文章都还没有抓过。
故事继续进行下去,据推测批踢踢的例行抓信时间如下:
4:17AM, 4:47AM, 5:17AM, 5:47AM, 6:17AM, 6:47AM,
7:17AM, 7:47AM, 8:17AM, 8:47AM, 9:17AM, 9:47AM,
10:17AM, 10:47AM, 11:17AM, 11:47AM, 12:17PM, 12:47PM,
1:17PM, 1:47PM, 2:17PM, 2:47PM, 3:17PM, 3:47PM,
4:17PM, 4:47PM, 5:17PM, 5:47PM, 6:17PM, 6:47PM,
7:17PM, 7:47PM, 8:17PM, 8:47PM, 9:17PM, 9:47PM,
(夜间尖峰休息) 2:17AM, 2:47AM
假如刚刚被归零的事件不幸发生了,那麽每次抓信的时候,就会从
news server 上最古老的文章开始抓。另外还有一点就是每次抓信
最多只会抓 100 篇,所以古文字出现的速率约略是 100篇/30分钟。
累积的最大篇数应为 100*38 = 3800 篇。
这就是可怕的海水倒灌的由来!
讨论:inndBM 为什麽要这样设计呢?
笔者认为它主要是想让一部分的转信设定档案能够自动产生。例如
有看板要申请转信,转信站长就只需要动一小部分的设定档,其他
的都交给 inndBM 产生。
但是笔者又认为它的做法实在太烂,除了海水倒灌的後遗症以外,
还会有漏转信的可能发生。
假如 news server 在 2:47AM 到 3:00AM 之间有新文章的话,
这些文章就不会被抓回 BBS 了。
其他看法:
1. 批踢踢把文章送到 news server 的时间是 2:00AM~21:30PM,
每半个小时一次。
批踢踢的推文功能固然很棒,但是只有转信那一刻以前的推文
才会被转出去,後续的推文只能在批踢踢观赏,这害得笔者只
敢在批踢踢看级板的文章。但这个问题在根本上很难解决。
2. 如果在转信之前,有修改过文章的话,该篇文章就转不出去,
这也是很恼人的 bug,竟然还没有人去修。
结语:千错万错,都是批踢踢的错!请大家给他卵‧蛋‧踢~~~~~~!!!
--
※ 发信站: 新批踢踢(ptt2.csie.ntu.edu.tw)
◆ From: 140.112.21.108
1F:→ AlvinX:推 卵‧蛋‧踢~~~~~~!!! 推140.112.249.183 04/13
--
※ 发信站: 批踢踢实业坊(ptt.csie.ntu.edu.tw)
◆ From: 140.112.21.108
2F:→ IMO:结语:千拜万拜 不如整箱国农拿来拜 推 218.160.13.96 04/13
3F:→ otom:卵蛋踢出名了~~ 推 140.112.242.85 04/13
4F:→ archiang:哈里路亚的背景音乐出现了 推 140.112.239.58 04/13
5F:→ ck881256:可是这样会同时召唤河神跟史地佛 推 61.218.112.75 04/14