日志的调查方法

现在担当的一个ec网,前不久因为系统bug,出现了未给部分用户计算折扣的现象。因为用户的id输出到了日志中,后来就把这些id抽出来,通过跟另外一个master文件进行对比的方法来进行恢复工作。

插图

一般这种情况下,使用excel的vlookup函数都能够简单实现,但是因为母数据有30万件,直接粘贴到excel里面会导致系统死机,而这些数据因为都是个人情报,不能从没有数据库的商业环境里抽取出来,所以很是麻烦。

大家都束手无策的时候我当时提议拿java写个程序去查找。虽然现在看起来很傻,但是当时大家还是相当欣赏这个提议的。至少不需要人海战术去手动查了。

记得当时时候拿java写了这么个小程序:

idFile = openFile(开存放id的文件)
while(line = idFile读取一行){
masterFile = openFile(master文件)
while(target = masterFile读取一行){
if(line == target) {
输出line
break;
}

当时写完这个程序后是相当自豪,我完成了别人做不到的工作。而且后来因为单线程太慢,又通过把文件分割的形式拿多线程加快了速度,更是自信心高涨。但是现在看来,真是不了解外面的世界,井底之蛙啊。

之所以这么说,是因为后来另外一次系统故障让我体会到了有序的强大性和重要性。
跳过细节,直接说解决方法。

①将id文件进行排序(linux sort command)
②将master文件进行排序(linux sort command)
③将排好序的两个文件进行结合(linux join command)

仅仅三个linux命令,加起来执行时间不超过20秒,就将之前数小时才完成的工作做完了。
这一切都是因为排序对查找进行优化的结果。
没有排序之前,每次查找都如大海捞针一般,效率极其低下,而且从来不会得到改善。
有序以后,一切都变的如此简单,如此高效率。
其实同样的道理也适用于我们的生活。如果家里的摆设,衣服的存放,自己的日程安排,一切都混乱无序,你会发现生活特别的累,任何事情都是一团乱麻。而简洁的摆设,井井有条的衣柜,合理的日程安排,都会为你轻松愉快的生活提供极大的帮助。

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Close Bitnami banner
Bitnami