# @dirupt/adonis-resque 中文文档

规范地址：https://npmcn.com/package/%40dirupt/adonis-resque/

版本：3\.0\.0
npm 元数据更新时间：2026-03-06T21:17:09.600Z
中文译文更新时间：2026-11-12T11:48:24.205Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dirupt/adonis-resque
原文对照：https://npmcn.com/package/%40dirupt/adonis-resque/?lang=original
项目主页：https://github.com/dirupt-agency/adonis-resque#readme
源码仓库：https://github.com/dirupt-agency/adonis-resque

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：89.1 kB，56 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.0\.0
- 运行依赖：4 个
- peer 依赖：@adonisjs/core ^7\.0\.0，@adonisjs/redis ^9\.1\.0
- 首次发布：2026-03-06T21:17:09.097Z
- 最新版本发布：2026-03-06T21:17:09.340Z
- 近 30 天下载量：7376（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 1 个）

## 中文简介

重排 AdonisJS 的队列( 有 AdonisJS v7 支持的叉子)

## 安装

```sh
npm install @dirupt/adonis-resque
```

也可以使用：`pnpm add @dirupt/adonis-resque`、`yarn add @dirupt/adonis-resque`、`bun add @dirupt/adonis-resque`

## README

# @ dirupt/adonis-resque (英语)

> 叉子为 [adonis-resque (英语)](https://github.com/shiny/adonis-resque) 拥有 AdonisJS v7 支持

[![npm-image](https://img.shields.io/npm/v/@dirupt/adonis-resque?logo=npm&style=for-the-badge)](https://www.npmjs.com/package/@dirupt/adonis-resque) [![license-image](https://img.shields.io/npm/l/@dirupt/adonis-resque?style=for-the-badge&color=blueviolet)](https://github.com/dirupt-agency/adonis-resque/blob/master/LICENSE) [![typescript-image](https://img.shields.io/npm/types/@dirupt/adonis-resque?color=294E80&label=%20&logo=typescript&style=for-the-badge)](https://github.com/dirupt)

AdonisJS 重新排队系统,由 [节点折叠](https://github.com/actionhero/node-resque)。 。 。 .

## 贷项

这个包是叉子 [`adonis-resque`](https://github.com/shiny/adonis-resque) 以 [戴洁](https://github.com/shiny),更新为 AdonisJS v7 兼容性。 原执行的功劳全部归原作者.

## 版本数

| @ dirupt/adonis-resque (英语) | @ adonisjs/ 分数 | @adonisjs/ redis (英语) |
| --- | --- | --- |
| ^3. \*. \* 翻译: | ^7. \*. \* 翻译: | ^9. \*. \* 翻译: |

对于 AdonisJS v6 ,使用原始软件包: [`adonis-resque@^2`](https://github.com/shiny/adonis-resque)

## 安装

```bash
pnpm add @dirupt/adonis-resque
```

安装后调用 `configure`数字 :

```bash
node ace configure @dirupt/adonis-resque
```

这将:

-   创建 `config/resque.ts` 默认配置
-   注册提供者和命令 `adonisrc.ts`

## 使用量

确保 `@adonisjs/redis` 在使用此软件包之前安装和配置.

### 创建任务

```bash
node ace make:job send_email
```

这创造了 `app/jobs/send_email.ts`数字 :

```ts
import { BaseJob } from '@dirupt/adonis-resque'

export default class SendEmail extends BaseJob {
  async perform(email: string, subject: string) {
    // Your job logic here
  }
}
```

### 排队工作

```ts
import SendEmail from '#jobs/send_email'

// Enqueue immediately
await SendEmail.enqueue('user@example.com', 'Welcome!')

// Enqueue with delay (in ms)
await SendEmail.enqueueIn(5000, 'user@example.com', 'Reminder')

// Enqueue at specific time (unix timestamp in ms)
await SendEmail.enqueueAt(Date.now() + 60000, 'user@example.com', 'Scheduled')

// Batch enqueue
await SendEmail.enqueueAll([
  ['user1@example.com', 'Hello'],
  ['user2@example.com', 'Hello'],
])
```

### 时间安排工作(Cron/Interval)

```ts
import { BaseJob } from '@dirupt/adonis-resque'

export default class CleanupJob extends BaseJob {
  // Run every hour
  cron = '0 * * * *'

  // Or use interval (e.g., every 5 minutes)
  // interval = '5m'

  async perform() {
    // Cleanup logic
  }
}
```

### 插件

```ts
import { BaseJob, Plugin } from '@dirupt/adonis-resque'

export default class UniqueJob extends BaseJob {
  plugins = [
    Plugin.jobLock({ lockTimeout: 3600 }),
    Plugin.retry({ retryLimit: 3, retryDelay: 1000 }),
  ]

  async perform() {
    // Job logic
  }
}
```

可用的插件 :

-   `Plugin.jobLock()` - 防止重复运行的工作
-   `Plugin.queueLock()` - 防止重复的队列任务
-   `Plugin.delayQueueLock()` - 防止重复的延迟工作
-   `Plugin.retry()` - 重试失败的工作
-   `Plugin.noop()` - 日志错误而不丢

### 开始工作

```bash
# Start workers (default)
node ace resque:start

# Start scheduler only
node ace resque:start --schedule

# Use multi-worker
node ace resque:start --isMulti

# Specify queue names
node ace resque:start --queueName=high --queueName=default
```

### 配置

单位 `config/resque.ts`数字 :

```ts
import { defineConfig } from '@dirupt/adonis-resque'

const resqueConfig = defineConfig({
  redisConnection: 'main',
  runWorkerInWebEnv: true,
  runScheduler: true,
  isMultiWorkerEnabled: true,
  multiWorkerOption: {
    minTaskProcessors: 1,
    maxTaskProcessors: 10,
  },
  workerOption: {},
  queueNameForJobs: 'default',
  queueNameForWorkers: '*',
  logger: null,
  verbose: true,
})

export default resqueConfig
```

### 处理错误

覆盖 `handleError` 在你的工作班级:

```ts
export default class MyJob extends BaseJob {
  handleError(error: unknown) {
    // Custom error handling
    console.error('Job failed:', error)
    throw error // Re-throw to mark as failed
  }

  onFailure(failure: ResqueFailure) {
    // Called when the job fails after all retries
  }
}
```

## 许可证

[麻省理工学院](https://npmcn.com/package/%40dirupt/adonis-resque/LICENSE)

## 常见问题

### @dirupt/adonis-resque 是什么？

重排 AdonisJS 的队列\( 有 AdonisJS v7 支持的叉子\)

### 如何安装 @dirupt/adonis-resque？

在项目目录运行 npm install @dirupt/adonis-resque，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@adonisjs/core（^7\.0\.0）、@adonisjs/redis（^9\.1\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @dirupt/adonis-resque 支持 TypeScript 吗？

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

### @dirupt/adonis-resque 支持 ESM 还是 CommonJS？

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

### @dirupt/adonis-resque 需要什么版本的 Node\.js？

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

### @dirupt/adonis-resque 可以商用吗？

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

### @dirupt/adonis-resque 的下载量有多少？

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

### @dirupt/adonis-resque 还在维护吗？

最新版本 3\.0\.0 发布于 2026/03/07（8 个月前）；至今共发布 1 个版本，其中过去 12 个月发布了 1 个；首次发布于 2026/03/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

