openapi-sdk icon indicating copy to clipboard operation
openapi-sdk copied to clipboard

限速异常

Open zliang01 opened this issue 4 months ago • 8 comments

api 接口实时调用接口,限速和文档不符。

com.google.common.util.concurrent.RateLimiter limiter = com.google.common.util.concurrent.RateLimiter.create(3.0);
        long time = System.currentTimeMillis();
        int i = 1;
        while (true){
            limiter.acquire();
            SecurityCalcIndex[] results = ctxPull.getCalcIndexes(new String[] {"NVDA251024C185000.US",
                    "AAPL251024C260000.US",
                    "QQQ251024P612000.US",
                    "TSLA251024C450000.US",
                    "GOOGL251024C260000.US",
                    "AAPL251024P260000.US",
                    "TSLA251024P450000.US",
                    "AMD251024C240000.US",
                    "GOOGL251024P260000.US",
                    "AMD251024P240000.US",
                    "GOOGL251024C257500.US",
                    "QQQ251024C612000.US",
                    "PLTR251031P185000.US",
                    "SOFI251024C29000.US",
                    "TSLA251024C450000.US",
            },CalcIndex.values()).get();

            System.out.println( (System.currentTimeMillis() - time) + " ms for CalcIndex batch request" + results.length +" times:" + (i++));
            time = System.currentTimeMillis();

            for(SecurityCalcIndex result : results){
                SecurityCalcIndex mapData = resultMap.get(result.getSymbol());
                if(mapData == null){
                    resultMap.put(result.getSymbol(), result);
                }else if(result.toString().equals(mapData.toString())){
                    //相等不处理
                    continue;
                }else {
                    resultMap.put(result.getSymbol(), result);
                }

//                System.out.println(System.currentTimeMillis() + "CalcIndex for " + result);
            }
        }
111 ms for CalcIndex batch request15 times:1
338 ms for CalcIndex batch request15 times:2
292 ms for CalcIndex batch request15 times:3
343 ms for CalcIndex batch request15 times:4
326 ms for CalcIndex batch request15 times:5
334 ms for CalcIndex batch request15 times:6
333 ms for CalcIndex batch request15 times:7
333 ms for CalcIndex batch request15 times:8
337 ms for CalcIndex batch request15 times:9
333 ms for CalcIndex batch request15 times:10
331 ms for CalcIndex batch request15 times:11
337 ms for CalcIndex batch request15 times:12
323 ms for CalcIndex batch request15 times:13
337 ms for CalcIndex batch request15 times:14
334 ms for CalcIndex batch request15 times:15
332 ms for CalcIndex batch request15 times:16
335 ms for CalcIndex batch request15 times:17
331 ms for CalcIndex batch request15 times:18
337 ms for CalcIndex batch request15 times:19
338 ms for CalcIndex batch request15 times:20
325 ms for CalcIndex batch request15 times:21
339 ms for CalcIndex batch request15 times:22
323 ms for CalcIndex batch request15 times:23
338 ms for CalcIndex batch request15 times:24
332 ms for CalcIndex batch request15 times:25
332 ms for CalcIndex batch request15 times:26
337 ms for CalcIndex batch request15 times:27
370 ms for CalcIndex batch request15 times:28
289 ms for CalcIndex batch request15 times:29
332 ms for CalcIndex batch request15 times:30
340 ms for CalcIndex batch request15 times:31
335 ms for CalcIndex batch request15 times:32
328 ms for CalcIndex batch request15 times:33
Exception in thread "main" java.util.concurrent.ExecutionException: OpenApiException [kind=OpenApi, code=301607, message=Too many option securities request within one minute]

这错误日期是按分钟进行限速的吗, 行情相关 API | 一个账号同时只能建立一个长连接,最多同时订阅 500 个标的1 秒内不超过 10 次调用,并发请求数不超过 5 我这个三百多ms调用一次,怎么会触发限速呢,建议这个数据能放到订阅的数据中,或者单独提供一个订阅来处理计算指标

zliang01 avatar Oct 26 '25 04:10 zliang01

感觉跟最多同时订阅 500 个标的 这个500有点关系,但是我这个是主动拉取,不是订阅,不应该受到这个限制吧,

zliang01 avatar Oct 26 '25 05:10 zliang01

经过多次验证,怎么发现是一分钟之内的不能超过500个订阅的标的,拉取不是订阅吧,其次,就算是单个symbol,一分钟超过500次也是不行,所以这个限制具体是什么规则,是不是有bug

zliang01 avatar Oct 26 '25 13:10 zliang01

目前期权有限制 一分钟最多查 500 个期权标的,包含重复的标的。这个我们会后续考虑放开

juffson avatar Oct 27 '25 10:10 juffson

目前期权有限制 一分钟最多查 500 个期权标的,包含重复的标的。这个我们会后续考虑放开

后续有具体的开放计划吗

zliang01 avatar Oct 27 '25 10:10 zliang01

重复的标的还限制感觉不合理,每个标的每分钟显示xxx多少次比较好,然后整体是多少个标的

zliang01 avatar Oct 27 '25 10:10 zliang01

目前针对期权有这个规则,这个我们内部测试后考虑逐步放开,股票那些是按照文档进行限流的。

juffson avatar Oct 27 '25 10:10 juffson

目前针对期权有这个规则,这个我们内部测试后考虑逐步放开,股票那些是按照文档进行限流的。

grazie mille

zliang01 avatar Oct 27 '25 10:10 zliang01

希望可以尽快修改这个规则,同时希望修改的时候可以通知下或者增加发布日志之类的,或者回复我这个帖子,冒味问一句,招人吗,十年java+react

zliang01 avatar Oct 27 '25 19:10 zliang01