项目简介
wistroni40-dmc
是一个强大的 Node.js 库,其主要目标是帮助开发者构建复杂的数据驱动报警系统。该库提供了丰富的工具和抽象类,使开发者能够轻松实现报警系统的构建、扩展与定制。
项目的主要特性和功能
- 日志管理:构建抽象日志转接器,可自定义日志操作,支持 Log4js 日志转接器。
- 存储管理:具备备援存储功能,支持 Local Storage 备份存储,保障数据安全。
- Cron 任务:提供抽象排程执行器,可自定义排程工作,支持 ElasticSearch 查询排程执行器。
- 数据消费者:通过抽象消费者类,可自定义 Consumer 转接器,支持 Kafka、MQTT、CRON 及复合式 Consumer 转接器。
- 数据生产者:利用抽象生产者类,能自定义 Producer 转接器,支持 Kafka、HTTP Post 和 MQTT 生产者。
- 初始化程序:借助抽象初始化程序,可将需监控的数据加入报警数据,还能定期更新、添加或移除监控范围的数据。
- 报警系统:提供抽象报警流程模板和报警状态对象,支持时间驱动、数据驱动和混合驱动报警类型,内置失败重投和备份机制。
安装使用步骤
安装依赖
使用 npm 安装 wistroni40-dmc
库。
bash
npm i wistroni40-dmc --save
引入库文件
在 Node.js 项目里引入 wistroni40-dmc
库。
javascript
const { AlarmTemplate, KafkaConsumerAdapter, MqttConsumerAdapter, CronConsumerAdapter } = require('wistroni40-dmc');
创建报警服务类
创建继承自 AlarmTemplate
的报警服务类,并按需覆盖必要方法。
javascript
class MyAlarmService extends AlarmTemplate {
async init() {
// 初始化代码
}
async consumer() {
// 返回一个数据消费者
}
async resolve(message) {
// 解析数据
}
exclude(entity) {
// 判断是否排除数据
}
defaultLevel(entity) {
// 返回一个默认报警等级状态
}
level4(entity) {
// 返回特定报警等级状态
}
payload(alarm) {
// 打包报警数据
}
async producer() {
// 返回一个数据生产者
}
execute() {
// 执行报警判定
}
getAlarmEntity(entity) {
// 获取特定键值报警数据
}
getAllAlarmEntities() {
// 获取所有报警数据
}
storeAlarmEntity(entity) {
// 保存报警数据
}
isAlarmEntityExist(entity) {
// 判断报警数据是否存在
}
deleteAlarmEntity(entity) {
// 删除特定报警数据
}
}
使用报警服务
在应用中使用创建好的报警服务类。
javascript
const myAlarmService = new MyAlarmService('my-alarm-service');
myAlarmService.execute().subscribe(res => console.log(res));
const alarm = myAlarmService.getAlarmEntity(/** 要获取的报警数据 */);
const allAlarms = myAlarmService.getAllAlarmEntities();
myAlarmService.storeAlarmEntity(/** 要保存的报警数据 */);
const exists = myAlarmService.isAlarmEntityExist(/** 要检查的报警数据 */);
myAlarmService.deleteAlarmEntity(/** 要删除的报警数据 */);
自定义数据消费者
若库中无所需的数据消费者,可继承 ConsumerAdapter
类创建自定义消费者。
运行与测试
运行 Node.js 应用,利用项目 examples
目录下的示例测试报警系统。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】