该目录下所有接口是本系统调用用户配置的回调地址,而非系统内可以直接调用的接口,目的是将一些事件信息或者某些数据传输到用户的系统中
该目录下的所有接口都需要先在 API 管理界面进行回调地址配置之后才能使用此处配置的回调地址为一个根地址,系统内的不同事件会调用到这个根地址下的子路径里,例如用户填入的回调地址是http://127.0.0.1:3000
,当系统发生了点赞踩事件的时候,系统会自动调用http://127.0.0.1:3000/v1/bot-message/feedback
这个地址,即后面的相对地址随着不同的事件的变化而变化。同时这里也支持填入一个子路径,例如用户填入的是http://127.0.0.1:3000/some-custom-path/juzi/callback
,那么当发生点赞踩事件的时候,实际的回调地址就是http://127.0.0.1:3000/some-custom-path/juzi/callback/v1/bot-message/feedback
, 即系统永远会自动在填入的地址后面拼接一个子路径来区分不同的事件推送,用户可以根据自己的情况自行实现对应的路径,不需要监听的事件对应的路径不实现即可。回调失败说明#
超时说明#
为了确保系统的稳定,系统会对所有请求设置超时时间,超过时间系统没有收到响应后会认为推送失败当收到回调后,在 5 秒内返回 200-300 内的状态码则会被系统认为是推送成功回调请求的超时时间无法延长,如果有复杂处理逻辑,请使用异步处理的方式,先将收到的回调数据入库保存,然后再执行复杂的处理逻辑。
重试说明#
为了确保最大程度能够将回调信息推送成功,系统会在推送失败的时候自动进行重试,超过次数之后,则认为回调推送失败,不再进行推送自动禁用#
为了保障系统的稳定性,避免错误配置的地址或宕机的回调地址造成系统内回调推送堆积的问题,因此系统针对持续回调失败的地址会启用自动禁用的保护机制触发条件:当系统检测到在 3 分钟内,有连续的超过 10 次的重试 5 次都没有推送成功的情况下,系统会将对应的请求地址暂时禁用 30 分钟,对应地址下产生的任何回调推送均被自动拦截不再推送数量统计采用滑动窗口算法,即所有的判断条件都是按照过去 3 分钟内,发生的错误次数进行统计的
当统计期间出现了一次推送成功,则统计次数会被清零,因此只有连续出现错误才会对地址进行禁用操作
注意,地址禁用仅针对配置的某一个具体地址
例如用户配置了https://mydomain.com/juzi-callback/
地址,针对这个地址,有点赞踩回调
和批量子任务结果回调
,而因为某些原因,点赞踩的回调
地址持续发生错误,此时,仅点赞踩回调
地址会被禁用,而批量子任务结果回调
地址并不会被禁用