我的网上记事本
« »
2010年03月25日UniBilling

话务批发余额控制模块 for unibilling

花了一天两夜的时间,终于把 [话务批发余额控制模块] 实现了。Unibilling以后可以胜任话批业务了。话务批发余额控制模块的功能是unibilling作为落地使用的时候,保证上百路并发不至于出现负余额,不至于出现短话单。

说实话,我一直回避这个模块。所以,unibilling以前用的方法是均分余额法,虽然可以做到不出现负余额,但缺点是在话批帐户的余额不太多的时候,易出现短话单,顾客不易接受。

为理顺思路,特意在纸上画了一个大水桶,通过一个总水管,连出四个粗细不一的水龙头。

对着这张图空想了一半天,得出如下设计思路:

  • 水龙头放水,大水桶知道。
  • 水龙头有水流出,大水桶水位下降。
  • 多个水龙头可以一起放水,也可以不一起放水。
  • 大小水龙头单位时间内流水量不同。
  • 有那个一个时刻: 水桶里的水被水龙头给放干了。
  • 往水桶加水,水龙头会继续有水流出。

:) 头脑中有了蓝图,就可以开工了。结构、指针、链表、线程,大家一起上!

实现技术:Asterisk manage interface 即AMI编程; 杜绝数据库操作。

总的来说,实现的比较顺利。并发呼叫测试结果如我所愿。

现在是凌晨1点钟,正在用印度的话务做压力测试。并发60路左右。

更新:

2010-04-05:  增加对IAX2通道类型的处理。

日志信息 »

该日志于2010-03-25 00:17由 admin 发表在UniBilling分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

没有评论

发表评论 »

返回顶部