直至正文
豫言包府
← 众包

豫言操作系统持久告警 0.1.0

豫言 · 库

读取、设置与删除当前持久对象的唯一告警,并在告警事件中读取重试次数。

持久告警之约 0.1.0

此包使客管当前持久对象(Durable Object)之告警(alarm):读其已设之时,设之或易之,删之,且于告警之事中读平台已试之次。告警者,持久对象至期而由平台复唤之机也:至期则宿主以 durable-alarm 之事入客之 _start(客循[网页入站之约](../网页入站/规范.文言.md)之 读取入站事件种类 辨之),是时无 HTTP 请,客当自[持久事务](../持久事务/规范.文言.md)之久仓复其所需之态。告警宜于“稍后再续”之后台事:长务分段而续、定期清理、败而重试。

义

一持久对象至多一告警。设置持久告警 设之于绝对 Unix 毫秒之时(自 1970-01-01T00:00:00Z 起之整数毫秒,取值 0 至 8640000000000000),已有者被易;时已过则平台速触之。读取持久告警 返(已设否,时):未设则返(阴,零)。删除持久告警 去其告警,本无则无事。

告警之事始,其告警视为已清:入口中 读取持久告警 返(阴,零),入口可再 设置持久告警 以排下次(周期之务即如此成之)。入口败(抛未捕之异、逾事时之限、为平台所止)则平台自退避而重试:败后、重试始前,告警视为已设(读取持久告警 返阳与重试之时);重试之事中 读取告警重试次数 返已试之次(初次为零,首重试为一,以次递增),重试之事始,告警亦视为已清。重试之次数上限与退避之时以平台为准(平台文档现行:至多六次,指数退避,起约二秒;本地 workerd 已见重试次数 0、1、2 递增,上限待云端验),尽则平台弃其告警。按平台文档,告警至少触发一次(云端待验),故入口须幂等。非告警之事,读取告警重试次数 恒为零。

告警之术惟持久对象之事可用(事类以 durable- 起,含[持久事务](../持久事务/规范.文言.md)之事务入口与[持久独占](../持久独占/规范.文言.md)之独占区入口)。于事务入口中设或删告警,与其事务同命:事务提交则行,回滚或败则撤(本地 workerd 已验,云端待验)。清空持久仓 于 SQLite 之存,依兼容日期或并清告警,须告警者当于清仓之后复设之。告警之事之墙钟时限,默与他事同(三十秒),宿主可由构建产物之 执行配置.json 为 durable-alarm 放宽至多十五分;时限属宿主之配,非此接口之事。

术

读取持久告警:无参,返(爻,整数)。设置持久告警:参为绝对毫秒整数,返有。删除持久告警:无参,返有。读取告警重试次数:无参,返整数。

败之情形

时小于零或大于 8640000000000000,违约也:抛可捕之豫言异,辞曰 持久告警时刻须在 0 至 8640000000000000 之间。于非持久对象之事调前三术,违约也:抛可捕之豫言异,辞曰 当前事件不属于持久对象。存后端故障,平台之故也,宿主止当前事,豫言不可捕。读取告警重试次数 不败。

跨宿主之一致

诸实现须守:一对象一告警、设即易、绝对毫秒;告警之事始,告警视为已清;败则重试且次数递增、败后待试之际告警视为已设;非告警之事重试数为零;事务内告警之变与事务同命;上述诸限与败类。

一致性样例

新对象 读取持久告警 得(阴,零);设置持久告警 1900000000000 后得(阳,1900000000000);再 设置持久告警 1900000005000 后得(阳,1900000005000);删除持久告警 后得(阴,零)。设置持久告警 -1 与 设置持久告警 8640000000000001 皆抛异。告警之事:初触发 读取告警重试次数 为 0 而 读取持久告警 为(阴,零);入口故意抛错后,下次入前 读取持久告警 为(阳,重试之时),重试之事中次数为 1。事务入口中 设置持久告警 T 而调 回滚持久事务,事务之后 读取持久告警 仍为(阴,零)。

界

此包不供多告警、周期告警或依名之定时器;周期之务由入口重设告警而成。不保准点(平台于时后触发,或有延迟),亦不保恰一次。告警惟属持久对象,Worker 之 scheduled 定时之事另有其能。

所赖

观包之制

上传之记

今修订:1 ·

  1. 修订 1
    取 ZIP

包之层级

父:豫言操作系统接口

无子包。