a***@wsyxmall.com
a***@wsyxmall.com
  • 发布:2025-11-10 10:14
  • 更新:2025-11-10 10:14
  • 阅读:321

【报Bug】unipush2.0,我们后端调用url云函数时,有小概率云函数返回500

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

示例代码:
'use strict';    
const uniPush = uniCloud.getPushManager({appId:"__UNI__DABF927"}) //注意这里需要传入你的应用appId    
exports.main = async (event, context) => {  
    const body = JSON.parse(event.body);  
    const sendOptions = {    
        "push_clientid": body.push_clientid,     //填写上一步在uni-app客户端获取到的客户端推送标识push_clientid    
        // "force_notification":true,  //填写true,客户端就会对在线消息自动创建“通知栏消息”。    
        "title":body.title,  
        "content": body.content,  
        "badge": body.payload.badge,  
        "settings": {    
            //消息有效期设置,单位毫秒,-1表示不设离线。默认是 2 小时,取值范围:-1 ~ 3 * 24 * 3600 * 1000(3天)之间    
            "ttl":86400000    
        },    
        "payload": body.payload,  
        // "category": {    
        //     //HarmonyOS NEXT系统(纯血鸿蒙、非安卓鸿蒙)的消息分类,要给鸿蒙设备推送时才必传    
        //     "harmony":"MARKETING", "huawei":"EXPRESS", "vivo":"ORDER"  
        // },    
        "options":{    
            "HW": {        
                  // 值为int 类型。1 表示华为测试消息,华为每个应用每日可发送该测试消息500条。此 target_user_type 参数请勿发布至线上。        
                  // "/message/android/target_user_type":body.payload.targetUserType,  
                  "/message/android/category": body.payload.hwCategory,  
                  // "/message/android/notification/badge/add_num": 1,  
                  // "/message/android/notification/badge/add_num": body.payload.badge,  
                  "/message/android/notification/badge/set_num": body.payload.badge>99?99:body.payload.badge,  
                  "/message/android/notification/badge/class": "io.dcloud.PandoraEntry",    
                  //add_num 为离线推送时,设置的华为角标,1表示在当前的角标数上+1    
              } ,      
            "HO": {        
                 //值为int 类型。1 表示测试推送,不填默认为0。荣耀每个应用每日可发送该测试消息1000条。此测试参数请勿发布至线上。    
                  // "/android/targetUserType": body.payload.targetUserType,  
                  "/android/notification/importance": body.payload.hoImportance,  
                  "/android/notification/badge/setNum":body.payload.badge>99?99:body.payload.badge,  
                  // "/android/notification/badge/addNum": 1,    
                  //add_num 为离线推送时,设置的荣耀角标,1表示在当前的角标数上+1    
                  "/android/notification/badge/badgeClass": "io.dcloud.PandoraEntry"    
              } ,    
            "VV": {        
                 //值为int 类型。0 表示正式推送;1 表示测试推送,不填默认为0。此 pushMode 参数请勿发布至线上。    
                  // "/pushMode": body.payload.targetUserType,  
                  "/category": body.payload.vvCategory,  
              } ,      
            "XM": {        
                 //新小米消息分类下,私信公信id都必须要传,否则请求小米厂商接口会被拦截    
                  "/extra.channel_id": body.payload.xmChannelId  
              },  
            "OP": {  
                  "/channel_id": body.payload.opChannelId,  
                  "/category": body.payload.opCategory,  
                  "/notify_level": body.payload.opNotifyLevel, //通知栏消息提醒等级取值定义。1:通知栏,2:通知栏+锁屏,16:通知栏+锁屏+横幅+震动+铃声。使用notify_level参数时,category参数必传。  
                  "/private_msg_template_id": body.payload.opMsgTemplateId,  
                  "/private_title_parameters": body.payload.opTitleParameters,  
                  "/private_content_parameters": body.payload.opContentParameters,  
              }  
        }    
    }  
    if(body.payload.targetUserType) {  
        sendOptions.options.HW["/message/android/target_user_type"] = body.payload.targetUserType  
        sendOptions.options.HO["/android/targetUserType"] = body.payload.targetUserType  
        sendOptions.options.VV["/pushMode"] = body.payload.targetUserType  
    }  
    return await uniPush.sendMessage(sendOptions)    
};

操作步骤:

使用后端调用云函数,有小概率云函数返回500报错

预期结果:

返回正确结果

实际结果:

大概每天发一千多条,偶尔会有几条数据返回500报错

bug描述:

unipush2.0,我们后端调用url云函数时,有小概率云函数返回500,绝大部分是正常的,返回500的数据也没计入云函数的日志中,云函数日志记录的只有400的数据。

2025-11-10 10:14 负责人:无 分享
已邀请:

要回复问题请先登录注册