阿尔马纳克语Name
大多数人想要 牡蛎 运行他们的 Apps 或者说 Shi 他们的特工. Almanac 给主机作者一个纯排程核心,用于 cron cadence, 发生 身份和回顾。 主机拥有存储器,其定时器和射击的作用.
快速启动
使用节点24或后. 安装软件包并运行其运出的例子 :
mkdir my-schedule
cd my-schedule
npm init -y
npm install @fungi.computer/almanac [email protected]
node node_modules/@fungi.computer/almanac/examples/next-occurrence.mjs
它印着 2026-10-11T09:00:00.000Z在发放资格时,安装
提供阿尔马纳克 .tgz 而不是软件包名称。 出版物是单独的
步骤.
示例使用根导出 :
import { nextOccurrence } from "@fungi.computer/almanac";
import * as Result from "effect/Result";
const next = nextOccurrence(
{ expression: "0 9 * * *", timeZone: "UTC" },
Date.parse("2026-10-11T08:00:00Z"),
);
if (Result.isFailure(next)) throw new Error(next.failure.message);
console.log(new Date(next.success).toISOString());
实例
同一软件包在浏览器捆绑中有效. 需要标准 Date 财务报告和审定财务报表 Intl
时区支持,并且没有工人运行时间,节点多填充或主机证书.
已打包的浏览器证明在 Chromium 中运行此已运出的例子 。 装填的节点
消费者还用严格的节点Next和
skipLibCheck: false。 。 。 .
核心概念
一个时间表是: ScheduleCore 记录加上主机自己的目标字段.
过渡还原了新的记录。 无法启动定时器或写入存储器 .
nextOccurrence(cadence, after): 紧接其后的第一次发生after在 IANA 区域显示effect/Cron) (中文(简体) ). 一个不好的表达式或 区域是invalid永远不再发生的事exhausted。 。 。 .occurrenceKey(schedule)实值id:nextDueAt重复射击 发生键相同,所以主机可以承认发生 二能发相.- 错过了勾结。 射击后,在复会后,下一个事件发生在 从现在开始计算,所以一个时间表 下来或暂停运行一次,不是 积压.
afterAdmitted完成一发或移动重现时间表(暂停) 与理由,如果它的胆量已经用尽.afterRefused保持不变 发生,记录原因并退后(默认情况下30s翻为1h).paused, (中文(简体) ),resumed财务报告和审定财务报表cancelled是状态变化; 已暂停并解析 时刻表永远不会到期.
见 API 参考 用于完整根导出.
共享备份
BackoffDelay 修正纯度 (attempt, policy) => delayMs 合同,再使用
RetryPolicy一次尝试(和一次尝试以下的尝试)使用初始延迟,
以盖为界;后来尝试将盖子翻两番. 来电供应
其政策,且计算不拥有时钟,存储或重试执行.
afterRefused 在递增拒绝尝试后使用此计算.
维护者检查
pnpm --dir packages/almanac run test
pnpm --dir packages/almanac run lint
pnpm --dir packages/almanac run typecheck
pnpm --dir packages/almanac run build
pnpm --dir packages/almanac run docs
pnpm --dir packages/almanac run stranger
pnpm --dir packages/almanac run stranger:browser
浏览器验证命令使用存储器的重排调度器. 建立干净的旧 排放声明前的产出。 档案馆载运运行时间,类型, 许可证、 README、 API 参考和示例。 维护者测试留在源中 结账 许可证根据 麻省理工学院。 。 。 .