getStatisticsRangDay 调用报错。

小程序开发相关产品技术讨论,包括面板、智能小程序、React Native、Ray跨端框架、Panel SDK、微信小程序、小程序开发工具(IDE)及其他开发技术相关等话题


silverlight
Posts: 114

lshinylee 2024年 Sep 6日 16:58

这个业务层需要做节流的哈,这种数据接口涉及量比较大,不会允许过多频繁的调用的

我这边可以增加节流,但我并没有频繁使用,只在useEffect中调用这个api,各调用一次,后续不再重新获取。以前可以实现我的目的,但最近无法实现了。


Tags:
silverlight
Posts: 114

Re: getStatisticsRangDay 调用报错。

muhai 2024年 Sep 6日 15:19

不是,这个21年就限制了.. 设备id发来看下

今天测试了一下,又能正常使用,没有报错了。这会不会是服务器不稳定造成的?

lshinylee
Posts: 298

Re: getStatisticsRangDay 调用报错。

这个统计服务存在根据当前资源情况、调用情况等多种判断条件进行限流,所以业务层建议不要在 1s 内频繁调用,根据 debounce 做一层限制进行请求防抖,避免触发请求限流。

:D :D :D

18559697016
Posts: 104

Re: getStatisticsRangDay 调用报错。

遇到同样的问题,延迟2秒后再去调用一次,getStatisticsRangDay依旧会出现的报错,这没有频繁吧,或是给出个标准时间间隔也是挺好的

lshinylee
Posts: 298

Re: getStatisticsRangDay 调用报错。

确认下是在海外区调用的吗?

:D :D :D

18559697016
Posts: 104

Re: getStatisticsRangDay 调用报错。

感觉,都有这个问题
上午是带VPN,调用的,有报错
刚刚没有VPN,肯定是国内了,有报错

silverlight
Posts: 114

Re: getStatisticsRangDay 调用报错。

lshinylee 2024年 Sep 11日 09:25

这个统计服务存在根据当前资源情况、调用情况等多种判断条件进行限流,所以业务层建议不要在 1s 内频繁调用,根据 debounce 做一层限制进行请求防抖,避免触发请求限流。

Code: Select all

  const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));

  const fetchDataWithDelay = async (item) => {
    await fetchHour(item); // 获取小时数据,填入 daydate
    await delay(2000); // 延迟2秒
    await fetchDay(item); // 获取当天数据,填入 daydate
    await delay(2000); // 延迟2秒
    await fetchMonth(item); // 获取月数据,填入 monthdate
    await delay(2000); // 延迟2秒
    await fetchWeek(item); // 获取周数据,填入 weekdate
    // console.log('chartitem', item);
  };
  
const debouncedFetchData = debounce(fetchDataWithDelay, 2000); useEffect(() => { const fetchAllData = async () => { for (const item of items) { await debouncedFetchData(item); } };
fetchAllData(); }, [items]);

我今天发现又无法正常获取,所以增加了延迟和防抖,但是依然报错,报错如下。vpn开和不开我都试过了,都无法获取。

Code: Select all

Error fetching data: {"errorCode": 40015, "errorMsg": "miniapp highway request error", "innerError": {"errorMsg": "Error Domain=com.thing.www Code=500 "server busy" UserInfo={NSLocalizedDescription=server busy}", "errorCode": "500"}}
lshinylee
Posts: 298

Re: getStatisticsRangDay 调用报错。

麻烦提供下可复现的设备id和触发时间点?我们分析下看看,这种不像是预期现象

:D :D :D

silverlight
Posts: 114

Re: getStatisticsRangDay 调用报错。

lshinylee 2024年 Sep 26日 18:35

麻烦提供下可复现的设备id和触发时间点?我们分析下看看,这种不像是预期现象

设备id:6cc8b6225898a2a9dcvnjs。我的触发时间是进入在进入页面首次渲染完成后触发一次,且后续不再触发重新渲染。
今天12:00又能正常获取了。

Code: Select all

  useEffect(() => {
    const fetchAllData = async () => {
      for (const item of items) {
        await debouncedFetchData(item);
      }
    };
  
fetchAllData(); },[]);
lshinylee
Posts: 298

Re: getStatisticsRangDay 调用报错。

通过你提供的设备 id 我们排查日志发现以下几个问题:

  1. 6cc8b6225898a2a9dcvnjs 这个设备对应的产品只开通了功能点 107(4G流量统计)的 sum 类型统计,日志里存在不少请求了未配置统计功能的功能点,如(devId:6cc8b6225898a2a9dcvnjs,dpId:109, typesum, intervalONE_DAY),这个需要你这边排查下代码。

  2. 我们发现这种错误日志没有很好的抛出来,国庆节后会尽快修复,方便明确具体错误原因。

:D :D :D

Post Reply