如果按照惯例,假如我们使用在python虚拟环境中安装了akshare,测试运行的时候检查akshare取数并没有问题,但是如何拿到自控模块来运行多多少少都是出现些速度的快慢的问题。就比如说,在股票交易过程中,用户在a股行情接口打开来获取akshare数据包进行预处理,获取的数据零零散散,就容易出现akshare取数会很慢的情况,那么,在这些情况下,作为软件开发者,应该如何在修正呢?
那首先我们可以根据a股行情接口获取数据信息的类型来判断:
一、获取数据信息类型
| 消息 | 说明 |
| TickRecord | 逐笔成交 |
| OrderRecord | 逐笔委托 |
| OrderQueueRecord | 委托队列 |
| StockQuoteRecord | 股票十档行情 |
二、TickRecord (逐笔成交数据爬取)
| 字段名 | 类型 | 备注 |
| stock_exchange | uint32 | 证券市场,1-SH,2-SZ |
| stock_code | string | 证券代码 |
| created_at | int64 | 成交日期时间戳(毫秒) |
| code | string | 成交编号 |
| price | uint32 | 成交单价 |
| volume | uint64 | 成交数量 |
| amount | uint64 | 成交金额 |
| tx_dir | uint32 | 交易方向:0-未知,1-买方成交,2-卖方成交 |
| tx_kind | uint32 | 交易类型:0-成交,1-撤单 |
| buy_order_seq | string | 买方委托序号 |
| sell_order_seq | string | 卖方委托序号 |
也就是说,通过数据行情接口使用akshare取数是有类型的限制条件的,因此,akshare取数会很慢的原因是因为数据类型的不匹配,系统对数据的兼容性问题要求高了,特别是在多个交易者使用时,增加了数据接口的爬取难度,减慢了速度,也可能要进行排队等候,自然就变慢了。那么在基于这种情况下,可以怎样去修正系统提高取数的速度呢?
总结两个方法:(1)重启pgsql数据库 systemctl restart postgresql 注释掉akshare的代码可以恢复运行,但是使用akshare还是用报错的话,可以更换py-mini-racer的版本为网上的一些博客使用的版本==0.1.17 结果报错还是存在。但有可能是由于akshare1.7.1版本过高,卸载重新安装最新的版本。
(2)卸载重新安装py-mini-racer0.4.0看看是否成功。其实这些解决的办法都是很细节的问题,必须要了解清楚链接股票数据接口的数据源方面。
然后,经过一次次的系统测试之后,保证akshare取数的速度正常,那就算是修正成功了,如果有更多的建议,大家也可以小编留言。
上一篇:12生肖中什么肖千里迢迢寻夫来
下一篇:关于花柳的成语