0%

krproject开发进展(四)

很久没有写博客了,国庆结束后将代码简单整理了一下,放到github上了,其实犹豫了很久,一方面我还是知道自己coding水平的,写的鸟代码可能会被人鄙视;另一方面,对于一个追求完美的人来说,这个版本确实还是太粗糙了。whatever……,我还是觉得有必要厚着脸皮将这第一步迈出去~

目前为止这个项目还是纯代码,并没有多少的文字介绍,花了一些时间整理了一个项目介绍的ppt:krproject-introduction

从上一篇krproject开发进展(三) 到现在已经有四个多月的时间了,其实这中间真正用来折腾krproject的时间并不是很多,不过还是做了些事情的:

回顾一下:

  • 增加历史统计量LRU缓存功能,krproject的大部分统计运算是基于内存存储krdb的,而对于行为习惯等时间跨度较长的统计量、特征值则需要从数据库中获取,为了减少数据库的操作次数,会对这些数据做缓存,缓存的大小可配置;
  • 为了提供接口,将引擎封装到krengine中,对外部仅暴露三个主要接口函数:kr_engine_startup(),kr_engine_run(),kr_engine_shutdown();
  • 编写了Python的接口,结合pika库实现了和rabbitmq通信的功能;
  • 增加了动态库加载功能(kr_module,只是简单包装了posix的dl功能),将krdb的接口转换纳入模块加载中,用户可自己编写接口数据到krdb内存的转换模块了。

后续计划:

  • 压力测试,这个也许是当前最要紧的了,想尽快补充引擎的benchmark图,虽然对引擎的性能很有信心,但是没有实践没有发言权;
  • tutorial及样例的编写,学着写文档;
  • 增加数据库的支持,目前只支持db2和oracle,考虑增加mysql和sqlite的支持,并考虑将sqlite3做为默认数据库支持,方便试玩;
  • 处理的应答回调函数处理模块设计编写;
  • 规则及统计量的配置界面(考虑用Python实现,这块感觉自己一个人还是够呛,没有前台开发经验……)。