【软件】DMS系统流程总结
it吧
全部回复
仅看楼主
level 6
iwtbs8 楼主
一楼度娘
2015年08月10日 03点08分 1
level 6
iwtbs8 楼主
根据达内范老师的讲解,加上我自己的叙述,写成此文,有需要可以借鉴看看。如果有问题,可以留帖子。谢谢
2015年08月10日 03点08分 2
那个老师怎么样啊
2015年08月10日 08点08分
回复
heaven��ɫ
: 范老师相当和蔼可亲~
2015年08月10日 08点08分
回复
heaven��ɫ
:超级耐心的
2015年08月10日 08点08分
level 6
iwtbs8 楼主
DMS流程:
DMS流程:
com.tarena包
DMSClient类,这个是DMS的客户端
2015年08月10日 03点08分 3
达内教学环境如何
2015年08月10日 08点08分
回复
heaven��ɫ
:。。校区比较小,硬件设置一般,氛围倒是很好
2015年08月10日 08点08分
level 6
iwtbs8 楼主
1、构造方法初始化客户端
1.1加载配置文件,通过方法完成
1.2初始化客户端属性,通过方法完成
2015年08月10日 03点08分 4
达内的学生努力学么
2015年08月10日 08点08分
回复
heaven��ɫ
: 当然啊,交了钱的啊,都是拼了命在学
2015年08月10日 08点08分
level 6
iwtbs8 楼主
2、定义方法加载配置文件
loadFile()//从XML文档中读取,返回一个Map
3、定义方法初始化客户端属性
init(Map<,> config),其中传过来的参数就是第二步返回的Map集合
2015年08月10日 03点08分 5
达内学生多么
2015年08月10日 08点08分
回复
heaven��ɫ
: 每个校区基本都是满的,北京六个校区。。全国大城市都有校区。。你说人多不
2015年08月10日 08点08分
level 6
iwtbs8 楼主
4、定义start()
调用parseLogs();
调用matchLogs();
调用sendLogs();
PS:对于前两步要加上判断,如果返回false,则continue等待
2015年08月10日 03点08分 6
楼主在达内算是大神么
2015年08月10日 08点08分
回复
heaven��ɫ
: 当然!!不算。。。
2015年08月10日 08点08分
level 6
iwtbs8 楼主
5、第一大步:解析日志
(1)解析时用到的属性
File logFile;// Unix系统日志文件
File textLogFile;// 解析之后的日志文件
File lastPositionFile;// 书签文件
int batch;// 一次解析日志的条目数
该属性都可以从配置文件中读取
2015年08月10日 03点08分 7
感觉楼主写的东西很不错啊
2015年08月10日 08点08分
回复
heaven��ɫ
: 小试牛刀哈哈
2015年08月10日 08点08分
level 6
iwtbs8 楼主
(2)定义解析方法parseLogs()
解析步骤:
1:必要的判断
1.1:若textLogFile文件已经存在,说明第一步已经成功执行过,由于第二步配对成功会将该文件删除,所以可以看出若
该文件存在,说明第二步没有成功配对,那么第一步不能再次解析,否则会将上次解析的日志覆盖导致数据丢失
1.2:Unix系统日志文件要存在
1.3:是否还有日志可以解析,并获取开始解析的位置(hasLogs()方法)
2015年08月10日 03点08分 8
可能我太渣了都感觉看不太懂
2015年08月10日 08点08分
回复
heaven��ɫ
: 你没学啊,学了就觉得不难了
2015年08月10日 08点08分
level 6
iwtbs8 楼主
2:创建RandomAccessFile来读取Unix系统日志文件
3:移动RAF的指针到上次读取的最后位置
4:解析batch条日志,将每一条日志读取出来并解析,然后将其转换为一个LogData对象,并存入集合备用
5:将集合中每一个LogDate表示的日志以行为单位写到textLogFile中
6:将RAF当前指针位置写入书签文件,以便下次从这里继续解析
2015年08月10日 03点08分 9
唉~看来确实有差距啊
2015年08月10日 08点08分
回复
heaven��ɫ
: 嘿嘿,我也是这么一步步过来的
2015年08月10日 08点08分
level 6
iwtbs8 楼主
6、定义hasLogs()
功能:根据书签文件中的记录判断系统日志文件是否还有日志可解析:
若有,则返回书签文件中记录的上次最后解析的位置,以便开始新的解析;
若没有日志可以解析则返回-1
1:首先判断lastPositionFile是否存在,若不存在,则是第一次读取
2:若存在则读取文件的存储long值,即上次读取的结束位置。此处额外定义一个类用于操作数据的读写
IOUtil类,先定义一个readLong的方法
2015年08月10日 03点08分 10
我是自学来着 但是感觉速度挺慢的
2015年08月10日 08点08分
回复
heaven��ɫ
: 自学当然慢了,尤其入门阶段
2015年08月10日 08点08分
level 6
iwtbs8 楼主
7、第二大步:配对过程
(1)增加两个属性
File loginRecFile;//保存配对日志文件
File loginLogFile;//保存没有配对的日志文件
同时在配置文件xml中添加两个属性,并更新初始化方法(对增加的两个属性)
(2)定义配对方法boolean matchLogs()
2015年08月10日 03点08分 11
你现在学习了几个月
2015年08月10日 08点08分
level 6
iwtbs8 楼主
步骤:
1:必要的判断
1.1:判断logRecFile文件是否存在,若存在,说明已经成功配对过了,因为第三步发送配对日志的工作完成后
会将该文件删除,所以该文件的存在说明第三步没有完成,那么第二步无需再重复配对
1.2:textLogFile文件不存在,不能进行配对的
2015年08月10日 03点08分 12
[泪]早知道我也去培训机构了
2015年08月10日 08点08分
回复
heaven��ɫ
: 欢迎来达内
2015年08月10日 08点08分
level 6
iwtbs8 楼主
2:读取textlogFile文件,将所有日志读取出来转换为若干LogData实例并存入集合等待配对
(1)在IOUtil类中定义读取的方法:List<LogData> readLogFile(File file)
功能:这是一个通用的方法,从给定的文件中读取每一行日志,并转换为若干LogData实例,
然后将他们存入List集合后返回
(2)在LogData类中添加一个重载的构造方法public LogData(String str)
功能:用于将toString返回的字符串重新解析,拆分出中间数据,然后依次赋给每一个变量
之后就可以将readLogFile读取的日志进行解析,创建对象
2015年08月10日 03点08分 13
你说我现在去还能来得及么
2015年08月10日 08点08分
感觉费用好贵啊
2015年08月10日 08点08分
回复
heaven��ɫ
: 当然。。你又不大,任何时候都不晚啊
2015年08月10日 08点08分
回复
heaven��ɫ
:你这是投资自己啊~到时候工作就赚回来了
2015年08月10日 09点08分
level 6
iwtbs8 楼主
3:若loginLogFile文件存在,则说明有上次没配对成功的日志,应当将他们读取出来放入集合等待一起配对
PS:此处放入的集合就是第二步返回的List集合(通过list.addAll()快速添加)
2015年08月10日 03点08分 15
你说的到也有道理。。
2015年08月10日 08点08分
回复
heaven��ɫ
: 是吧~所以欢迎来达内试听看看
2015年08月10日 09点08分
level 6
iwtbs8 楼主
4:配对工作
4.1:创建两个Map,一个用于存放所有登入日志,另一个存放所有登出日志(选用的Map的原因是方便根据key值
读取其中的value,方便后面的配对,一旦配对成功,方便从集合中删除元素)
key:name,pid,host拼接的字符串,用来保证可以的唯一
value则是该日志对应的logData实例
Map<String, LogData> loginMap = new HashMap<String, LogData>();
Map<String, LogData> logoutMap = new HashMap<String, LogData>();
2015年08月10日 03点08分 16
唉,总之好后悔啊,现在感觉明明学的早但是比你学的差多了
2015年08月10日 08点08分
回复
heaven��ɫ
: 所以现在立马行动起来吧
2015年08月10日 09点08分
level 6
iwtbs8 楼主
4.2:分类
遍历所有配对日志的集合,将所有登入登出日志存入Map,登出日志存入登出Map
PS:分类的标准就是判断LogData中的type类型,如果是7,则是登入日志;如果为8,则是登出日志
2015年08月10日 03点08分 17
我是西安的,那里也有达内么
2015年08月10日 08点08分
回复
heaven��ɫ
: 有啊
2015年08月10日 09点08分
level 6
iwtbs8 楼主
4.3:配对
遍历所有登出Map,并使用登出日志对应的key,去登入Map中提取登入日志并构成一组配对日志,并用一个LogRec对象保存。
然后将该对象存入另一个用于保存配对日志的集合。
然后将该登入日志从登入Map中删除,最终登入Map中只会剩下没有配对成功的日志。
2015年08月10日 03点08分 18
同步直播?
2015年08月10日 08点08分
回复
heaven��ɫ
: 对,北京市面授。其他地区是同步教学
2015年08月10日 09点08分
level 6
iwtbs8 楼主
5:将所有配对日志写入logRecFile中
仍然调用saveCollection()方法,将集合中数据写入文件中
6:将所有未配对日志写入loginLogFile中
在写入文件的时候,map有一个方法可以返回所有key值构成的一个集合
Collection values()
7:将第一步生成的textLogFile删除
2015年08月10日 03点08分 19
那会不会听不懂没人问啊
2015年08月10日 08点08分
回复
heaven��ɫ
: 每个班有教学助理的
2015年08月10日 09点08分
level 6
iwtbs8 楼主
8、第三大步:发送过程
(1)增加两个属性
String serverHost;//服务端地址
int serverPort;//服务端端口
(2)定义方法:boolean sendLogs()
2015年08月10日 03点08分 20
诶。。
2015年08月10日 08点08分
level 6
iwtbs8 楼主
先写一些吧,吃午饭去了,如有不足,还请不吝赐教哈哈
2015年08月10日 03点08分 21
楼主大神谦虚了
2015年08月10日 08点08分
回复
heaven��ɫ
: 真的不是大神。。。
2015年08月10日 09点08分
1 2 尾页