@elysiumjs/heracles-workers

中文文档
0.2.11发布于 2026/11/12Apache-2.0TypeScriptES Module零依赖近 30 天下载 2884

Cloudflare Queues and cron triggers for Heracles jobs in the Elysium.js framework.

此软件包已被标记为弃用

Replaced by @elysiumjs/workers.

原始使用文档

@elysiumjs/heracles-workers

Runs Heracles jobs on Cloudflare Workers: Cloudflare Queues carry the jobs, and cron triggers dispatch the scheduled jobs.

Installation

bun add @elysiumjs/heracles-workers

Usage

Send the jobs of a queue to a Cloudflare Queue with CloudflareQueueTransport, and add HeraclesWorkersModule to consume them in the same Worker (or another one):

import { Application } from '@elysiumjs/core';
import { HeraclesModule } from '@elysiumjs/heracles';
import { CloudflareQueueTransport, HeraclesWorkersModule } from '@elysiumjs/heracles-workers';
import { runtime } from '@elysiumjs/runtime-workers';

@Application.register({
    runtime,
    modules: [
        HeraclesModule.with({
            queues: {
                emails: {
                    transport: CloudflareQueueTransport,
                    transportOptions: { binding: 'EMAILS', deadLetterQueue: 'EMAILS_DLQ' }
                }
            }
        }),
        HeraclesWorkersModule,
        MailModule
    ]
})
class App extends Application {}
// wrangler.jsonc
{
    "queues": {
        "producers": [
            { "binding": "EMAILS", "queue": "emails" },
            { "binding": "EMAILS_DLQ", "queue": "emails-dlq" }
        ],
        "consumers": [{ "queue": "emails" }]
    },
    "triggers": { "crons": ["0 3 * * *"] }
}
  • A completed job is acked. A failed job is retried after its retryDelay while its attempts stay within maxRetries. After its last retry, it is logged and acked. When its queue's transportOptions set a deadLetterQueue binding, it is also sent there, as it was sent with a failure member (error, attempts, time); each queue has its own. With HeraclesWorkersModule.with({ onDead }), it is also handed to onDead, whatever its queue.
  • A job scheduled for later is delayed with delaySeconds, up to the 12 hours Cloudflare Queues allow.
  • Cloudflare Queues keep no job status and cannot cancel a message: getJobStatus() throws, and cancellations are dropped with a warning.
  • Each cron trigger dispatches the jobs of @Scheduler.job() and the Scheduler classes whose expression is exactly the trigger's expression, at the trigger's time: a scheduler selects its cases for that tick. Times are UTC.
  • Messages that carry no Heracles job are left to the Worker's other queue consumers.

版本与发布记录

@elysiumjs/heracles-workers 共发布 16 个版本,首次发布于 2026/11/07;过去 12 个月发布了 16 个版本。

版本发布日期距今
0.2.11latest2026/11/122 天前
0.2.102026/11/112 天前
0.2.92026/11/113 天前
0.2.82026/11/113 天前
0.2.72026/11/103 天前
0.2.62026/11/094 天前

关于 @elysiumjs/heracles-workers 的常见问题

@elysiumjs/heracles-workers 是什么?

Cloudflare Queues and cron triggers for Heracles jobs in the Elysium.js framework.注意:该包已被作者标记为弃用——Replaced by @elysiumjs/workers.

如何安装 @elysiumjs/heracles-workers?

在项目目录运行 npm install @elysiumjs/heracles-workers,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@elysiumjs/core(^0.24.0)、@elysiumjs/heracles(^0.11.3)、@elysiumjs/runtime-workers(^0.1.13)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@elysiumjs/heracles-workers 支持 TypeScript 吗?

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

@elysiumjs/heracles-workers 支持 ESM 还是 CommonJS?

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

@elysiumjs/heracles-workers 可以商用吗?

@elysiumjs/heracles-workers 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@elysiumjs/heracles-workers 的下载量有多少?

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

@elysiumjs/heracles-workers 还在维护吗?

最新版本 0.2.11 发布于 2026/11/12(2 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/11/07。作者已将其标记为弃用,新项目建议寻找替代方案。