@dirupt/adonis-resque

中文文档
3.0.0发布于 2026/03/07MITTypeScriptES Module近 30 天下载 7376

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

中文使用文档
文档目录12 节
  1. 贷项
  2. 版本数
  3. 安装
  4. 使用量
  5. 创建任务
  6. 排队工作
  7. 时间安排工作(Cron/Interval)
  8. 插件
  9. 开始工作
  10. 配置
  11. 处理错误
  12. 许可证

@ dirupt/adonis-resque (英语)

叉子为 adonis-resque (英语) 拥有 AdonisJS v7 支持

npm-image license-image typescript-image

AdonisJS 重新排队系统,由 节点折叠。 。 。 .

贷项

这个包是叉子 adonis-resque 以 戴洁,更新为 AdonisJS v7 兼容性。 原执行的功劳全部归原作者.

版本数

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

对于 AdonisJS v6 ,使用原始软件包: adonis-resque@^2

安装

pnpm add @dirupt/adonis-resque

安装后调用 configure数字 :

node ace configure @dirupt/adonis-resque

这将:

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

使用量

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

创建任务

node ace make:job send_email

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

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

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

排队工作

import SendEmail from '#jobs/send_email'

// Enqueue immediately
await SendEmail.enqueue('[email protected]', 'Welcome!')

// Enqueue with delay (in ms)
await SendEmail.enqueueIn(5000, '[email protected]', 'Reminder')

// Enqueue at specific time (unix timestamp in ms)
await SendEmail.enqueueAt(Date.now() + 60000, '[email protected]', 'Scheduled')

// Batch enqueue
await SendEmail.enqueueAll([
  ['[email protected]', 'Hello'],
  ['[email protected]', 'Hello'],
])

时间安排工作(Cron/Interval)

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
  }
}

插件

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() - 日志错误而不丢

开始工作

# 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数字 :

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 在你的工作班级:

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
  }
}

许可证

麻省理工学院

版本与发布记录

@dirupt/adonis-resque 共发布 1 个版本,首次发布于 2026/03/07;过去 12 个月发布了 1 个版本。

版本发布日期距今
3.0.0latest2026/03/078 个月前

关于 @dirupt/adonis-resque 的常见问题

@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 和提交记录判断。