@litert/[email protected]

该文章根据 CC-BY-4.0 协议发表,转载请遵循该协议。
本文地址:https://fenying.net/project/litert/xxl-job-integration.js/v1.0.0/

@litert/xxl-job-integration 是一个使用 TypeScript 开发的 XXL-Job 计划任务调度系统 NodeJS 集成库。

功能/特性

  • 灵活与易组合的框架

    该库设计为灵活且易于组合,允许您仅使用所需的功能。大多数组件也可以被其他实现替换。

  • 任务类型

    • Bean

      在 NodeJS 中编写内嵌代码实现您的任务处理器,以便可以通过 XXL-Job 系统直接通过指定的处理器名称调用该任务处理器。

    • NodeJS 脚本

      在当前进程中直接运行一段指定的 NodeJS 脚本,结合应用程序提供的上下文可以实现类似插件的功能。

      这也允许在程序代码之外添加额外的任务处理器,而无需更改执行器代码。

      然而,这可能会导致一些 RCE 漏洞,如果您使用不受信任的脚本,请小心使用此功能。

    • Shell 脚本

      尚未实现,但将来会提供。(或者您也可以自行实现一个 Shell 脚本处理器)

    • Python 脚本

      尚未实现,但将来会提供。(或者您也可以自行实现一个 Python 脚本处理器)

  • 执行器注册代理

    本库提供了一个自动注册执行器到 XXL-Job 服务器并保持其活跃的代理类。 使用者只需要配置执行器的相关信息即可自动完成注册,无需手动注册执行器。

  • 路由策略

    完全支持 XXL-Job 的路由策略。包括故障转移(FAIL_OVER)和繁忙转移(BUSY_OVER)等。

  • 日志存储(支持日志轮转)

    • 内置: MemoryLogManager

      将日志存储在内存中,仅适用于开发和测试目的

    • 内置: FileLogManager

      将日志存储在文件中,适用于生产环境。它支持基于文件创建时间的日志轮转。

    • 自定义日志存储

      您也可以实现自己的日志存储,以便以您想要的持久化方式存储任务日志。

文档

使用要求

  • TypeScript v5.0.0 (or newer)

  • Node.js v18.0.0 (or newer)

  • XXL-Job v3.1.0 (or newer)

    低版本的 XXL-Job 也可以接入,但不保证所有功能都能正常工作。

安装

1npm i @litert/xxl-job-integration --save

使用示例

开源许可

该库基于 Apache-2.0 协议发布,使用者请遵守相关许可条款。