Penge
Penge
  • 发布:2026-02-05 12:27
  • 更新:2026-02-06 10:55
  • 阅读:24

【报Bug】定时触发云对象上传后,不执行

分类:uniCloud

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

操作步骤:

上传云对象

预期结果:

每分钟显示一个日志

实际结果:

没有运行定时触发

bug描述:

定时触发云对象,上传不执行(只有一条日志,内容:
[SYSTEM][INFO][0a4b08dc17702619000653984168] push_async_task_start: PushAsyncTask start
[SYSTEM][ERROR][0a4b08dc17702619000653984168] push_async_task_end: PushAsyncTask end and failed; result: resultCode:"500" taskState:FAILED errorMsg:"Function metadata not exit", err: <nil>
然后就没了,日志也没有,定时器配置:
"cloudfunction-config": {
"timeout": 10800,
"triggers": [
{
"name": "timer",
"type": "timer",
"config": "0 *"
}
]
}

2026-02-05 12:27 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

作为 DCloud 官方人员,对该 bug 反馈进行评审如下:


反馈内容完整性评估

项目 状态 说明
BUG 标题 ✅ 明确 简洁指出“定时触发云对象上传后,不执行”
BUG 描述 ⚠️ 部分缺失 提供了日志和定时器配置,但未说明使用的是哪家云厂商(阿里云/腾讯云/支付宝云)
代码示例 ❌ 缺失 未提供云对象代码,无法判断是否实现了 _timing 方法
复现步骤 ⚠️ 过于简略 仅写“上传云对象”,未说明是否上传成功、是否配置了 _timing、是否上传了 package.json
预期结果 ✅ 合理 每分钟触发一次并打印日志
实际结果 ✅ 描述清楚 日志显示 Function metadata not exit,任务失败
分类信息 ❌ 缺失 未提供云厂商、HBuilderX 版本、uniCloud 版本等关键信息

Bug 是否成立

根据知识库内容:

  • 云对象定时触发需满足以下条件:
    1. package.json 中正确配置 cloudfunction-config.triggers
    2. 云对象中必须实现 _timing 方法;
    3. 上传时必须包含 package.json 和云对象代码;
    4. 云厂商差异需注意:阿里云 cron 表达式为 6 位,腾讯云为 7 位。

用户日志中提示 Function metadata not exit,说明云对象未正确注册或缺失元信息,极可能是以下原因之一:

  • 云对象未实现 _timing 方法;
  • package.json 未上传或未包含触发器配置;
  • 上传时未勾选“上传云对象”或上传失败;
  • 使用了不支持的 cron 表达式格式(如阿里云用了 7 位表达式)。

是否为基本概念问题

是。该问题大概率属于配置错误或上传遗漏,而非平台 bug。根据知识库:

云对象定时触发配置方式与云函数一致,需实现 _timing 方法


建议用户补充以下内容

为便于进一步排查,请用户补充:

  1. 使用的云厂商(阿里云 / 腾讯云 / 支付宝云);
  2. 云对象代码中是否实现了 _timing 方法;
  3. 上传时是否包含 package.json 并确认上传成功;
  4. HBuilderX 版本号;
  5. 是否尝试过重新上传整个云对象目录。

建议下一步操作

请用户按以下步骤自查:

  1. 确认云对象中包含如下代码:
    module.exports = {  
     _timing(param) {  
       console.log('定时触发成功', param);  
     }  
    }  
  2. 确认 package.json 中包含如下配置:
    "cloudfunction-config": {  
     "triggers": [  
       {  
         "name": "timer",  
         "type": "timer",  
         "config": "0 * * * * *"  
       }  
     ]  
    }  
  3. 在 HBuilderX 中右键云对象目录 → 上传云对象;
  4. 等待 1 分钟后查看日志是否触发 _timing

结论

该反馈问题存在,但非平台 bug,属于配置或上传遗漏导致。建议用户按上述步骤自查并补充信息后,如仍有问题可继续反馈。

内容为 AI 生成,仅供参考
Penge

Penge (作者)

已经试过了,还是一样的,module.exports = {
_timing(param) {
console.log('定时触发成功', param);
}
}也不行,重新上传还是一样的错误:
[SYSTEM][ERROR][0a4b4d2e17702130000302865220] validate_meta_end: get function meta failed

Penge

Penge (作者)

日志都没有,我也不知道是什么问题,代码之前还是可以运行的,就是昨天中午开始就不执行了,然后后面我把云对象删除了重新上传就报这个错误,不知道是什么原因

DCloud_UNI_yuhe

DCloud_UNI_yuhe

控制台中有可视化的配置界面,在那里配置也不行吗?

要回复问题请先登录注册