简体中文
函数平台限制
约 990 字大约 3 分钟
2026-01-09
摘要
本文档详细列出了函数平台(APL)的各项运行限制,包括函数编写限制、HttpAPI 调用限制、内部 API 调用限制、执行时间与内存限制等,帮助开发者合理设计函数逻辑,避免触发平台限流。
限制列表
| 类 | 限制类别 | 限制值 | 限制范围 | 备注 |
|---|---|---|---|---|
| 函数编写限制 | 不能在闭包里使用的变量名称 | owner;this;delegate | 全网 | Range.each 或者 list.foreach 闭包内有该限制 |
| 函数调用外部 HttpAPI 限制 | 超时时间限制 | connectTimeout,默认 2s;readTimeout,5s,最大 120s | 全网 | |
| 重试次数 | connectTimeout,默认重试 3 次,参数可改;readTimeout,默认不重试,参数可改;重试最大次数,3 次(以上两种 both) | 全网 | ||
| Post 数据最大限制 | 5M | 全网 | ||
| 函数调用内部 API 限制 | Fx.object 调用次数限制 | 300(每个函数) | 新企业 | |
| Fx.object.editTeamMember、Fx.object.addTeamMember、Fx.object.addOutTeamMember、Fx.object.deleteTeamMember、Fx.object.changeOwner、Fx.object.batchChangeOwner | 100(每个函数) | 全网 | ||
| Fx.function 调用次数限制 | 50(每个函数) | 新企业 | ||
| Fx.http | 50(每个函数) | 新企业 | ||
| Fx.message | 50(每个函数) | 新企业 | ||
| Fx.crm、Fx.work、Fx.file、Fx.AI、Fx.tag、Fx.approval | 100(每个函数) | 新企业 | ||
| 函数执行限制 | 单个函数单条数据单位时间执行限制 | 一分钟限制 100 次 | 全网 | 超过执行次数限制函数执行报错 |
| 单个企业同时执行函数 | 同时执行次数限制 35 个 | 全网 | ||
| 计划任务执行限制 | 绑定对象 - 每日执行数据条数限制 | 专业版,无;旗舰版,10w;无限版,30w | 全网 | 可单独购买资源包扩展 |
| 不绑定对象 - 每日执行时长限制 | 专业版,无;旗舰版,半个小时;无限版,1.5 个小时 | 全网 | 可单独购买资源包扩展 | |
| 执行时间限制 | 新函数会根据命名空间进行运行时长限制 | 按钮 20s 流程 5min 自定义控制器 5min 计划任务 10min 电子签 180s 认证提供商 180s 互联数据同步 60s 校验函数 50s 数据集成 300s 事件监听 5min ERP 集成平台 180s debug 执行 120s 其他默认 15s | 所有函数 | 详见执行时间明细表 |
| 内存限制 | 函数会计算整个执行过程中使用的内存情况,对函数单次执行的内存信息进行限制 | 老函数:512m;新函数:256m | 2024/1/1 为时间分割线,区分新老函数 |
新企业:指 2021 年 2 月 4 号以后开通的企业
执行时间明细
| 命名空间 | 限制值 |
|---|---|
| debug 执行 | 120s |
| 按钮 | 20s |
| 流程 | 300s |
| 自定义控制器 | 300s |
| 计划任务 | 600s |
| 电子签 | 180s |
| 认证提供商 | 180s |
| 互联数据同步 | 60s |
| 校验函数 | 50s |
| 数据集成 | 300s |
| 事件监听 | 300s |
| ERP 集成平台 | 180s |
| 默认 | 15s |
版本记录
| 版本 | 日期 | 变更内容 | 负责人 |
|---|---|---|---|
| v1.0 | 2026-01-09 | 初始版本 |
背景说明
函数平台(APL)对函数编写、API 调用、执行时间和内存使用等方面设有限制,以确保平台的稳定运行和资源公平分配。本文档汇总了所有已知限制,供开发者在设计函数逻辑时参考。
注意事项
- 超过执行次数限制会导致函数执行报错,建议在代码中做好异常捕获
- 不同企业版本(专业版/旗舰版/无限版)的计划任务限制不同
- 新老函数的内存限制以 2024/1/1 为分割线
- 需要更高配额可单独购买资源包扩展
代码示例
// 建议在调用 API 前检查调用次数,避免触发限流
if (Fx.object.callCountThisMinute < 300) {
def data = Fx.object.query("object_Test__c", [])
// 正常处理业务逻辑
} else {
// 达到调用上限,等待下一分钟再执行
log.warn("object API 调用次数已达上限,请稍后重试")
}