@batchactions/state-sequelize

中文文档
0.0.4发布于 2026/02/19MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 1840

Sequelize persistence adapter for batch jobs and distributed workers with state storage, atomic claims, and job recovery

原始使用文档
文档目录9 节
  1. Install
  2. Quick Start
  3. Tables Created
  4. Distributed Support
  5. Limitations
  6. Compatibility
  7. Alternatives
  8. Links
  9. License

@batchactions/state-sequelize

Sequelize adapter that implements both StateStore and DistributedStateStore for @batchactions.

Use this package to persist job state, records, and distributed batch metadata in SQL databases supported by Sequelize v6.

Install

npm install @batchactions/state-sequelize @batchactions/core sequelize

For distributed mode:

npm install @batchactions/distributed @batchactions/import

Quick Start

import { Sequelize } from 'sequelize';
import { SequelizeStateStore } from '@batchactions/state-sequelize';
import { BulkImport, CsvParser, BufferSource } from '@batchactions/import';

const sequelize = new Sequelize(process.env.DATABASE_URL!);
const stateStore = new SequelizeStateStore(sequelize);
await stateStore.initialize();

const importer = new BulkImport({
  schema: { fields: [{ name: 'email', type: 'email', required: true }] },
  stateStore,
});

importer.from(new BufferSource('email\[email protected]'), new CsvParser());
await importer.start(async (record) => {
  await saveUser(record);
});

Tables Created

  • batchactions_jobs
  • batchactions_records
  • batchactions_batches

initialize() is idempotent and can be called safely on startup.

Distributed Support

SequelizeStateStore supports:

  • Atomic batch claiming (claimBatch)
  • Stale batch reclaiming (reclaimStaleBatches)
  • Batch-level record persistence
  • Exactly-once job finalization (tryFinalizeJob)

Limitations

  • Non-serializable schema fields (customValidator, transform, pattern) are stripped before persistence and must be re-injected when restoring jobs.
  • SQLite is suitable for development/tests, but not recommended for high-concurrency distributed processing.

Compatibility

  • Node.js >= 20.0.0
  • Peer dependencies:
  • @batchactions/core >= 0.0.1
  • sequelize ^6.0.0

Alternatives

If you prefer Prisma over Sequelize, use @batchactions/state-prisma which implements the same StateStore and DistributedStateStore interfaces with Prisma v6/v7.

License

MIT

版本与发布记录

@batchactions/state-sequelize 共发布 4 个版本,首次发布于 2026/02/18;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.4latest2026/02/198 个月前
0.0.32026/02/188 个月前
0.0.22026/02/188 个月前
0.0.12026/02/188 个月前

关于 @batchactions/state-sequelize 的常见问题

@batchactions/state-sequelize 是什么?

Sequelize persistence adapter for batch jobs and distributed workers with state storage, atomic claims, and job recovery

如何安装 @batchactions/state-sequelize?

在项目目录运行 npm install @batchactions/state-sequelize,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@batchactions/core(>=0.0.1)、sequelize(^6.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@batchactions/state-sequelize 支持 TypeScript 吗?

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

@batchactions/state-sequelize 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@batchactions/state-sequelize 需要什么版本的 Node.js?

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

@batchactions/state-sequelize 可以商用吗?

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

@batchactions/state-sequelize 的下载量有多少?

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

@batchactions/state-sequelize 还在维护吗?

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