efinance icon indicating copy to clipboard operation
efinance copied to clipboard

get_realtime_quotes在每访问一次间隔一秒的频率下运行半小时就会发生异常报错

Open chinapengwei opened this issue 8 months ago • 4 comments

efinance的版本是 0.5.5.2,get_realtime_quotes这个函数在今年4月12号之前以每访问一次间隔一秒的频率运行一直是正常的,但从4月14号开始就开发以这种频率下运行半小时就会发生异常报错,报错信息为“HttpConnectionPool(host='push2.eastmoney.com',prot=80):Max retries exceeded with url: Caused by ProtocolError(connection aborted,RemoteDisconnected('Remote end closed connection without response'))”。感觉可能是东财网为了防止并发访问而采取的防范措施,看代码get_realtime_quotes里面使用了线程池,这个效率上确实很快,可能调用的人多了就加了防范措施。我们这种自己写量化程序的,最怕的就是没有一个稳定的数据源,没有数据再好的量化算法也白搭。麻烦大神看看有没有什么办法解决。

chinapengwei avatar Apr 15 '25 11:04 chinapengwei

以前请求每页数据设置为10000,一次请求就能获取全市场数据,现在每页数据100,请求一次全市场数据需要五十多次请求,导致请求数量急剧上升,触发了东财的流控。

zhichier avatar Apr 16 '25 01:04 zhichier

有解吗

ganhb avatar Apr 16 '25 07:04 ganhb

是不是可以在efinance 服务器端做个cache,数据做个5s或者30s的延时。用户访问都从cache里取,而不是每个用户请求都去东财实时取?

aviatorBeijing avatar Apr 22 '25 14:04 aviatorBeijing

是不是可以在efinance 服务器端做个cache,数据做个5s或者30s的延时。用户访问都从cache里取,而不是每个用户请求都去东财实时取?

谁来出钱

leolle520 avatar May 29 '25 08:05 leolle520