打算利用周报简要记录技术上的实现内容和思路。
1. conversion 和 click 的小时 日志里 会出现如下 ua 乱码(Project日志也会有) :
source=talkingdata, ua=游�� 4.2.1 rv:4.2.1.0 (iPhone; iOS 10.1; zh_CN),
redis 看到的则是 :
source=talkingdata,
ua=\xc3\xa6\xc2\xb8\xc2\xb8\xc3\xa6\xc2\x88\xc2\x8f\xc3\xa5\xc2\xa4\xc2\x9a
4.2.1 rv:4.2.1.0 (iPhone; iOS 10.1; zh_CN)
基本认定为talkingdata发送过来的ua包含中文,导致日志内容乱码。redis存储的内容需要再度转义才知道原中文。
2. 解决了长久以来chrome下载报表时的内容格式不规范,文件名称不对应和内容乱码的问题。
firefox
可以使用 mime 下载报表。但chrome不能用mime,需要直接设置http response 的内容为报表文件内容并设置
"application/vnd.ms-excel;charset=GB18030" 作为 content-type。
至此,报表下载功能已完全做好。
3. 设置了报表生成和下载后自动延时删除报表文件以预防服务器文件管理问题。
4. click由于访问量大,连接redis保存日志和刷日志出错次数多,添加了出错则重试直至成功的设置。近期click已无此类报错。
5. click请求遇到某些http header为repeatable的,比如connection和cookie,导致click出错,修改允许此类请求。click已无此类报错。
6. 修改click和conversion报错邮件的主题和内容,以方便快速从邮件标题了解大致错误信息。
7. conversion设置了单独的sub process 进行回调渠道(可设置回调url和超时时间,重试次数),此举是为解决conversion一直在回调国外渠道时不断失败报错的问题。先观察该类错误基本消除了。