有关调用额度的问题:没有超过调用额度,为什么还报超额异常??

我设定的55次/分钟。258秒之前都正常。我的日志如下:

    255秒37次
    256秒38次
    256秒39次
    257秒40次
    257秒41次
    258秒42次
    258秒43次
    调用API异常:Exceeded rate limiting of 60 per minute for 2112@bbs.hanlp.com. 尊敬的2112@bbs.hanlp.com用户,你的调用次数超过了每分钟60次。 Please star and fork HanLP to increase your quota at https://github.com/hankcs/HanLP  请Star/Fork HanLP、参与开源项目来提高调用次数:https://github.com/hankcs/HanLP =================================================>
    com.hankcs.hanlp.restful.HanLPClient.post(HanLPClient.java:614)
    com.hankcs.hanlp.restful.HanLPClient.parse(HanLPClient.java:112)
    com.siyue.gkgh.dataPorcess.DataProcess.step_A(DataProcess.java:472)
    com.siyue.gkgh.dataPorcess.DataProcess.run(DataProcess.java:35)
    gkgh.DataProcessTest.testRun(DataProcessTest.java:22)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)`预格式化文本`
23秒51次
23秒52次
24秒53次
24秒54次
25秒55次
次数到,休眠35秒!...
60秒1次
60秒2次
61秒3次
61秒4次
62秒5次


83秒52次
83秒53次
83秒54次
84秒55次
次数到,休眠36秒!...
122秒1次
122秒2次
123秒3次
123秒4次
124秒5次
124秒6次



144秒52次
144秒53次
145秒54次
145秒55次
次数到,休眠35秒!...
180秒1次
180秒2次
181秒3次
181秒4次
182秒5次

.
.
.
.

请检查是否有多线程或者多进程调用。

@hanlpbot
应该是单线程。测试环境:使用JUnit的@Test注解,它是单线程的;Spring的@Component注解,他是单例的;调用接口在@Component注释的一个类的方法中。应该就是一个线程调用了一个实例的一个方法。

1赞

我在调用接口的方法上加了线程同步锁synchronized,又测试了一下,还是报异常:

380秒46次
381秒47次
381秒48次
382秒49次
382秒50次
调用API异常:Exceeded rate limiting of 60 per minute for 2112@bbs.hanlp.com. 尊敬的2112@bbs.hanlp.com用户,你的调用次数超过了每分钟60次。 Please star and fork HanLP to increase your quota at https://github.com/hankcs/HanLP  请Star/Fork HanLP、参与开源项目来提高调用次数:https://github.com/hankcs/HanLP =================================================>
com.hankcs.hanlp.restful.HanLPClient.post(HanLPClient.java:614)
com.hankcs.hanlp.restful.HanLPClient.parse(HanLPClient.java:112)
com.siyue.gkgh.dataPorcess.DataProcess.step_A(DataProcess.java:472)
com.siyue.gkgh.dataPorcess.DataProcess.run(DataProcess.java:35)
gkgh.DataProcessTest.testRun(DataProcessTest.java:22)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

在检查过后端代码后,没有发现计数错误。我猜有可能是网络问题,Java的http库可能在网络未响应的时候重复发了请求。