gyb todo

来源:互联网 发布:51单片机汇编指令表 编辑:程序博客网 时间:2024/05/16 19:10

1.日志信息完善

[2014-12-08 18:09:45:605][线程1100][5][20][0][]CDataImporter::Import错误:.
[2014-12-08 18:09:45:605][线程1100][1][20][0][]CDataImporter::Import result=-7.

此日志信息没有提供具体的错误描述,无法准确定位和处理
int CDataImporter::Import(IDataDoc *doc,short flag)

****增加错误信息描述


2.流量控制有缺陷

与平台连接的流量控制,目的是避免对平台造成过载的压力,如连接建立后需要发送大量的堆积的消息时。

目前的实现可能导致阻塞,HTX_Scheduler,GetData操作的发送队列都会出现。
HTX_Scheduler的阻塞导致注册过程无法完成,消息也不会发送.实际导致与平台的通信无法进行。

原因是:
。在向平台注册成功后,当超过流量控制的上限时,SEMQ的队列堆积了待发送的消息,如果HTX_Scheduler线程都阻塞在SEMQ的SendNewRecord上如处理810-Indication),
注册过程返回的消息无法被调度处理,直到超时断开.表现为长时间连接不上。

流量控制的超时值为300秒,过期的消息数为可再发送的消息数,但由于待发送的消息数量多,很容易到达流量控制线。

目前只能把流量水标设置的足够大。

解决办法:
方法1:与平台连接断开后,停止SEMQ发送任务(当时可能在阻塞状态,需要等待一个超时间隔才能完成队列当前元素的处理),清理掉队列中的元素。
---丢弃SEMQ队列的元素
方法2:服务器注册过程的消息由专门的任务处理,保证不会因流量控制而阻塞,就能保证与平台的通信持续。
---这种方法不需要丢弃SEMQ队列的元素. 但需要增加额外的任务,语义上难以解释.


3.供应宝平台的CSEMQ::GetData

int CSEMQ::GetData(string &sql)
时序控制代码被注释了?
----某些情况下可能会出现问题.如平台向下发送的需要控制时序的消息,可能就存在次序问题。
  什么情况下注释掉的?
 

4. hotfox完善

---跨平台支持linux 
---管理与配置:web,与Nginx集成
---unicode版本
---支持COM,支持跨语言开发,甚至支持java开发
---插件之间依赖关系配置:控制加载次序. ***目前有个问题:on_ee必须在md_mysql之后加载.在OnActivate中执行的操作有先后顺序要求!
 

5.客户端完善

。掉线问题:可以在ese中增加一个通信代理模块,可简化修改难度.
   ***连接断开不能中断用户的操作,甚至提示都没有,允许连接回复后用户继续原来的操作.
  
。服务分离:需要客户端支持


。登录连接时,“取消”操作相应非常慢

0 0
原创粉丝点击