消息体字节上限
公开「整数」文言:诸限之数,平台以十进千字节计之(一 KB 为一千字节)。消息体以规范化 JSON 之 UTF-8 字节计。汉语:单条消息体上限 128 KB = 128000 字节;一批各体合计上限 256 KB = 256000 字节(平台按十进制千字节计,本地 workerd 实测单条恰 128000 字节可投、128001 字节被拒);一批条数上限 100;延迟上限 12 小时;批量入参文字上限 1 MiB(只用来限制适配的工作量)。
包说明.html模块 / 2
队列。豫
「整数」文言:诸限之数,平台以十进千字节计之(一 KB 为一千字节)。消息体以规范化 JSON 之 UTF-8 字节计。汉语:单条消息体上限 128 KB = 128000 字节;一批各体合计上限 256 KB = 256000 字节(平台按十进制千字节计,本地 workerd 实测单条恰 128000 字节可投、128001 字节被拒);一批条数上限 100;延迟上限 12 小时;批量入参文字上限 1 MiB(只用来限制适配的工作量)。
「整数」暂无说明。
「整数」暂无说明。
「整数」暂无说明。
「整数」暂无说明。
「整数」文言:消息体之嵌套至多二十四层:宿主桥自身限三十二层,此限使投递之参数必不逾之。汉语:JSON 嵌套层数上限(数组或对象各算一层);宿主桥对参数和结果的嵌套限制是 32 层,取 24 层使投递参数不会触及它。
化「字符串」而「字符串」文言:以原字节交宿主,由 TextDecoder 还为 JS 字符串,得其 JSON 字面量;不经豫言之 JSON 转义,故任何字符无损。汉语:把字符串的 UTF-8 字节交给宿主,用 TextDecoder(ignoreBOM: true)还原成 JS 字符串,返回宿主用 JSON.stringify 写出的字面量;不经过豫言的 JSON 编码器,因此控制字符也不会出错。
化「字符串」而「字符串」文言:反其道:宿主之 JSON 字面量经 TextEncoder 编为字节而取回,豫言不析转义。汉语:把宿主返回的 JSON 字符串字面量交给 TextEncoder 编成 UTF-8 字节并取回还原,豫言一侧完全不解析 JSON 转义。
化「字符串」而「爻」文言:仅由可见 ASCII 而成、且无引号与反斜线者,可径以引号裹之。汉语:文字全部是 0x20 至 0x7E 的可见 ASCII 且不含双引号和反斜线时,可以直接加引号成为 JSON 字面量。
化「字符串」而「字符串」暂无说明。
化「字符串」而「爻」文言:宿主对象之记号($句柄、$未定义、$大整数、$数字)不属 JSON;规范化之 JSON 中,记号恒为首键,故以「{"记号":」求之,既不漏亦不误。汉语:句柄桥用单键对象 {"$句柄":…} 等表示宿主值;宿主生成的规范化 JSON 里它们只会以“{"记号":”的形式出现(字符串里的引号都带反斜线),所以子串检查既不漏报也不会把字符串内容误判。
化「字符串」而「字符串」文言:自宿主之误 JSON 取其辞;辞之字面经宿主还原,控制之字亦无损。汉语:错误 JSON 形如 {"名称":…,"消息":…};取出消息的字面量并经宿主还原为字符串,取不到时返回整个错误文。
化「字符串」而化「字符串」而化「字符串」而化「字符串」而「字符串」文言:调宿主之法而不使 JS 之误越桥;败则以平台原辞为豫言之异。汉语:用 云工调用方法安全 调用,把同步异常和 Promise 拒绝转成豫言异常,异常消息是给定前缀加平台报告的原文。
化「字符串」而「整数」文言:数规范化 JSON 之最大嵌套层数(数组或对象各一层),串内之字不计。汉语:扫描规范化 JSON 文字,返回括号的最大嵌套深度;字符串内部(含转义)不当结构。
化「字符串」而化「字符串」而化「整数」而「字符串」文言:先交宿主 JSON.parse 而复 JSON.stringify:验其为 JSON,去其冗白,正其转义,并使数字循 ECMAScript 之义;又拒宿主记号,使消息体不得冒宿主对象。汉语:让宿主执行 JSON.parse 再 JSON.stringify,得到规范化文字,同时验证语法与嵌套层数上限(批量时数组与项对象另计两层);规范化文字里若出现句柄桥的记号(如 {"$句柄":…},包括借 \u0024 转义拼出的键、以及 1e999 变成的无穷大)则拒绝,防止消息体伪造宿主对象。数字按 IEEE 754 双精度取值,与 JS 一致。
化「字符串」而「有」暂无说明。
化「整数」而「有」暂无说明。
化「整数」而「字符串」文言:投递选项:恒以 json 存之;延迟为零则不书。汉语:send 的选项对象:内容类型固定为 json;延迟为 0 时不写 delaySeconds。
化「字符串」而化「字符串」而化「整数」而「有」文言:投一书。正文验为 JSON、去宿主记号、不逾一二八 KB(一二八零零零字节),乃交 send。汉语:向授权队列投递一条消息;规范化后的 JSON 直接放进 send 的参数文字,不经豫言 JSON 库。
化(「列」于「字符串」)而化(「列」于「字符串」)而(「列」于「字符串」)文言:收一元:字列反者,合而为文,非空则入积。汉语:把反向累积的字符列合并成一个元素文字,非空时放到反向的元素列表头部。
化(「列」于「字符串」)而(「列」于「字符串」)文言:拆一 JSON 容器之顶层诸元。入者为容器首字之后之字列;遇顶层逗号则断,遇顶层闭括则止;串内之字(含转义)不作结构。规范化 JSON 无空白,故元文即其原文。汉语:把一个 JSON 容器(数组或对象)拆成顶层元素的文字:输入是去掉开头括号后的字符列;在括号深度为 0 的逗号处分隔,遇到深度 0 的闭括号结束;字符串内部(含转义)不当结构。输入须是规范化 JSON,元素文字就是原文。
化(「列」于「字符串」)而化「字符串」而「字符串」文言:自顶层元中取以某前缀起者之值文;无则空文。汉语:在顶层键值对文字列表里找以给定前缀(如 "body":)开头的第一项,返回前缀之后的值文字;没有则返回空字符串。
化「整数」而「爻」暂无说明。
化「字符串」而「整数」文言:批中延迟之文:空则无;否则须为一至五位数字且不逾四万三千二百。汉语:解析批量项里的 delaySeconds 文字;空文字表示未给出(0);否则必须是不超过 5 位的十进制整数且不大于 43200。
化「字符串」而(「字符串」合「整数」)文言:解一批项:必为对象,唯许 body 与 delaySeconds,body 必有且不逾一二八 KB(一二八零零零字节);返(投递项文,体之字节数)。汉语:解析规范化 JSON 数组里的一项:必须是对象,只允许 body 与 delaySeconds 两个键,body 必须存在且不超过 128 KB(128000 字节);返回(交给 sendBatch 的项文字,body 的字节数)。项文字固定加上 contentType:json。
化「字符串」而化「字符串」而「有」文言:一次投至多百书。全数验过方投;任一不合则一书不投。汉语:批量投递:先在豫言里完整校验整个数组(1 至 100 项,各项形状、延迟、各体不超过 128 KB(128000 字节)、合计不超过 256 KB(256000 字节)),全部合格才调用 sendBatch;任何一项不合格则不投递任何消息。
化「有」而「有」文言:非队列之事而用队列之术则败,使误为可捕之豫言异。汉语:先核对事件种类,使“当前事件不是队列事件”成为可捕获的豫言异常,而不是宿主 JS 错误。
化「整数」而「有」文言:序号自零起,须在本批之内。汉语:消息序号从 0 起,必须小于本批消息数;越界抛出豫言异常(宿主对越界的 JS 错误不可捕获,故先在这里核对)。
化「整数」而「整数」文言:取消息之时,或为日期物,或为数;日期则取其毫秒。汉语:读取消息的 timestamp:平台给出 Date 对象(经句柄取 getTime),测试替身也可以直接给毫秒整数。
化「整数」而「字符串」文言:一书之 JSON 文;体为宿主所出之规范文,含宿主记号者非 JSON 值,则败。汉语:把一条消息写成 {"id":…,"attempts":…,"timestamp":…,"body":…};body 是宿主输出的规范 JSON 文字,含句柄桥记号(Date、Map、二进制、undefined、BigInt、NaN 等非 JSON 值)时抛出豫言异常。
化「整数」而化「整数」而化(「列」于「字符串」)而(「列」于「字符串」)暂无说明。
化「有」而「字符串」文言:返当前批次之 JSON 文。汉语:返回 {"queue":队列名,"messages":[…]};消息按平台给出的顺序排列,序号从 0 起。
化「整数」而「有」文言:显式确认第序号书。汉语:确认当前批次的第 序号 条消息。
化「整数」而化「整数」而「有」文言:使第序号书重投;延迟零则从平台之默认。汉语:请求重新投递第 序号 条消息;延迟秒数为 0 时使用平台默认延迟,否则按给定秒数延后。