laputa-trigger-modules

0.2.2 • Public • Published

laputa-trigger-modules

version:0.2.x

description

Laputa项目,由某程序触发进行相关业务;项目没有入口,以module为主;前置程序触发调用,如node-red

使用

初始化,并执行

新增运行模式,两种模式 whole/specify 完整模式和指定模式;

  • whole 表示对全部租户库支持;该项为默认配置

  • specify 表示对指定租户库支持,需要额外传入租户库名配置

    options={runningMode:'specify',tenants:['laputa']}
//连接rethinkdb配置对象,不定义则使用默认配置文件中的配置
//运行模式 whole/specify
let options={runningMode:'specify',tenants:['laputa']};
//调用模块
const trigger = require('laputa-trigger-modules');
//获取r模块
//获取初始化模块,并初始化环境,初始化业务会将表 “system” 和 “deviceType” 数据缓存
async function begin() {
    const r = trigger.rethinkdb.init(options.db);
    options.r = r;
    const appInit = trigger.appInit(options);
    const caches = await appInit.init();
    const frame = { r: r, caches:caches};
    return frame;
}
begin();

自动生成工单业务

传入的数据主体为msgpack序列化格式 topic 格式中包含tenant库名;符合如“rcg/event/sh/laputa/env”,第4位为库名

生成的新工单数据会放入回调方法中被执行

/**
* ticket 新生成的工单数据对象
* topic 租户库名
**/
callback(ticket,topic){}

调用方法

/**
 * ......
 * ......
 * 省略启动时执行
 **/

//获取自动生成工单模块
const autoTicket = trigger.autoTicket;

//假设进入的数据
const message = {
    "deviceId": "5b2f68a5-1adb-4c8e-8fbf-811523779698",
    "monitorId": "436cf7b3-d6c0-4077-a1a7-25406ca11308",
    "state": "alarm",
    "value": 67.57,
    "_updateTime": 1503987070305
}

const _message=msgpack.encode(message);
const topic='rcg/event/sh/laputa/env';

begin().then(frame => {
    autoTicket(frame, topic, _message, function (ticket, topic) {
        console.log('new ticket', ticket, topic);
    });
});
    

推送数据Hook模块

  • 用于生成web hook,触发数据推送
    //调用模块
    const {PushMessageQueue} = require('laputa-trigger-modules').manual2Push;

    //初始化接收推送数据队列
    const queuePush = new PushMessageQueue();

    //数据传入
    queuePush.start_check(topic, pushData);

    //获取最新待推送数据
    let msg=queuePush.oneByOne();
    console.log(JSON.stringify(msg.app));

内部模块调用消息推送

    const {  InnerProcess } = require('laputa-trigger-modules').manual2Push;
    //必须要已经有创建好的‘queuePush’
    const innerPush = new InnerProcess(queuePush);
    //推送消息
    innerPush.okMessage(pushData);

License

公司内部使用

Readme

Keywords

Package Sidebar

Install

npm i laputa-trigger-modules

Weekly Downloads

4

Version

0.2.2

License

Copyright @jkinfo.com.cn

Last publish

Collaborators

  • sultra