@fungi.computer/almanac

中文文档
0.2.1发布于 2026/11/04MITTypeScriptES Module近 30 天下载 1.2万

目标不可知的持久时间表核心:cron cadence、发生身份、错漏和重试政策

中文使用文档
文档目录5 节
  1. 快速启动
  2. 实例
  3. 核心概念
  4. 共享备份
  5. 维护者检查

阿尔马纳克语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 参考和示例。 维护者测试留在源中 结账 许可证根据 麻省理工学院。 。 。 .

版本与发布记录

@fungi.computer/almanac 共发布 5 个版本,首次发布于 2026/10/17;过去 12 个月发布了 5 个版本。

版本发布日期距今
0.2.1latest2026/11/0412 天前
0.2.02026/10/2323 天前
0.1.02026/10/1729 天前
0.0.12026/10/1730 天前
0.0.0-stage2026/10/1730 天前

关于 @fungi.computer/almanac 的常见问题

@fungi.computer/almanac 是什么?

目标不可知的持久时间表核心:cron cadence、发生身份、错漏和重试政策

如何安装 @fungi.computer/almanac?

在项目目录运行 npm install @fungi.computer/almanac,或使用 pnpm add / yarn add / bun add。

@fungi.computer/almanac 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fungi.computer/almanac 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@fungi.computer/almanac 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@fungi.computer/almanac 可以商用吗?

@fungi.computer/almanac 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fungi.computer/almanac 的下载量有多少?

根据 npm 官方下载统计,@fungi.computer/almanac 在 2026/10/16 – 2026/11/14 这 30 天内被下载 12,428 次,日均约 414 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fungi.computer/almanac 还在维护吗?

最新版本 0.2.1 发布于 2026/11/04(12 天前);至今共发布 5 个版本,其中过去 12 个月发布了 5 个;首次发布于 2026/10/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。