行情多数据源对比项目

目的

为了提升我们股票的行情数据质量,实时爬取多个竞品的行情数据做校对,从中发现数据异常的股票,指导产品研发优化数据质量。

项目背景

需要对比计算的股票数量多,市场全品类的股票有2万多支,计算的字段多,有20几个字段,有的字段之间存在关联关系,需要依赖中间结果。

项目环境

这个项目当时是部署在了1台配置比较低的服务器上(是当时被IT部门淘汰出来的1台物理机),服务器的性能肯定很差,每轮执行时间需要5分多钟,执行期间CPU被占满,排队现象比较明显。

实现的功能

1、实时抓取多个数据源的行情数据。
2、对各个行情指标进行汇总计算,实时多数据源对比和计算逻辑。
3、对比后,把每支股票超过设定的指标偏差的指标数据(offset)数据进行计算/汇总。
4、发邮件模块,即把每支股票的offset偏差数据绘制成excel表格和附件,以邮件的方式每天定时给相关人发出去。

项目最终效果

1、这个项目发现了上千只(2782)股票的数据异常。
2、 提炼出5类有价值的问题,指导产品研发优化数据质量。

项目中遇到的问题:

这个项目已经上线运行1年多了,其中每天必看的多数据源对比结果邮件按照股票品类每天都会定时发送出来给相关责任人,可是最近突然接收不到美股的对比邮件了,赶紧回溯排查,解决。

回溯:

1、这个项目当时是部署在了1台配置比较低的服务器上(是当时被IT部门淘汰出来的1台物理机),服务器的性能肯定很差。
PS:这机器即使在办公室也经常突然卡死,再也连不上,在家也遇到好几次。

2、最近我们产品对行情多数据源对比项目提了几个新需求:
1)、每天定时拉取最新的股票市场全量股票symbol,进行更新
2)、对每支股票增加Follower字段(即粉丝数/关注数)

日志排查:

检查线上日志,发现只有A股、港股的日志,而且A股和港股的日志也正常,但是日志里就是没有美股的日志,没有走到美股发送邮件这里来,说明美股在数据处理逻辑过程中就停掉了,即全量美股计算没有处理完就退出了,这是什么原因导致的呢?为什么A股和港股没问题呢?

分析:

1、走查代码,代码没什么问题。
2、在线Debug,发现A股和HK股都能正常走完所有逻辑;但是美股,明显就是在数据对比逻辑中卡住了。-- 代码在线debug过程中,发现跟怀疑的差不多一致。
3、再看各品类的股票要执行的有多少量?全量A股大概有5000支左右,全量HK港股大概有9000支左右,全量美股大概有16000支左右 – 可以看出美股的数量是港股的接近2倍,美股的数量是A股的3倍多

综合分析:

到这里基本上就可以定位出问题原因了,因为服务的宿主机配置太差,服务器的性能差,导致计算量大的时候,CPU会被占满,排队现象比较明显,导致计算服务没被执行完就被服务器给Kill掉了。

解决思路和方案:

使用线程池+多任务方案进行处理,这样处理时间会加快,会充分利用机器的CPU性能,不知道机器会不会抗住,如果扛不住就采用每次都从全量股票数据中随机取几千只股票,然后使用线程池+多任务处理方式。

验证:
这种方案是可行的,美股我设定的是每次从16000支股票中随机抽出10000支股票,然后100支股票一个小任务,总共100个task进行执行,这样10000支股票数据计算非常快,原来美股全部计算完要至少5分钟,现在计算完只要几十秒,速度提升了好多倍,也没有被服务器kill掉,成功躲避了被服务器干掉的风险,至此,这个问题完美解决,perfect!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值