@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 集成库。
功能/特性
-
灵活与易组合的框架
该库设计为灵活且易于组合,允许您仅使用所需的功能。大多数组件也可以被其他实现替换。
-
任务类型
-
在 NodeJS 中编写内嵌代码实现您的任务处理器,以便可以通过 XXL-Job 系统直接通过指定的处理器名称调用该任务处理器。
-
在当前进程中直接运行一段指定的 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 协议发布,使用者请遵守相关许可条款。