模块 mq

消息队列模块

对象

Message

创建一个消息对象,参见 Message

Message mq.Message;

HttpHandler

创建一个 http 协议处理器对象,参见 HttpHandler

HttpHandler mq.HttpHandler;

Handler

创建一个消息处理器对象,传递值内置处理器则直接返回

Handler mq.Handler;

返回结果:

hdlr 接受内置消息处理器,处理函数,链式处理数组,路由对象:

消息处理函数语法如下:

function func(v) {}

参数 v 为正在处理的消息,返回结果允许有四种:

无返回或者其他的返回结果将结束消息处理。


Chain

创建一个消息处理器链处理对象,参见 Chain

Chain mq.Chain;

Routing

创建一个消息处理器路由对象,参见 Routing

Routing mq.Routing;

静态函数

await

创建一个异步等待处理器

static Handler mq.await();

返回结果:

异步等待处理器用于需要异步处理的消息处理模式,示例如下:

function func(v) {
    var await = mq.await();

    call_some_async_func(v1, v2, v3, function() {
        await.end();
    });

    return await;
}

示例是一个 javascript 消息处理函数,当函数返回时,消息处理引擎将等待 await,直到 await.end 被调用,才继续下一阶段的处理。


nullHandler

创建一个空处理器对象,次处理对象不做任何处理直接返回

static Handler mq.nullHandler();

返回结果:


invoke

使用给定的处理器处理一个消息或对象

static mq.invoke(Handler hdlr,
    object v) async;

调用参数:

不同于处理器的 invoke 方法,此方法将循环调用每个处理器的返回处理器,直到处理器返回 null 为止。