Context Store API

0.19版本新增功能

上下文存储插件是一个node.js模块,它在其module.exports上公开了一个函数,该函数可用于创建插件的新实例。该函数返回的对象必须包含以下函数:

功能 描述
ContextStore.open() 打开存储准备使用
ContextStore.close() 关闭存储
ContextStore.get(scope, key, callback) 从存储中获取值
ContextStore.set(scope, key, value, callback) 在存储中设置值
ContextStore.keys(scope, callback) 获取存储中所有键的列表
ContextStore.delete(scope) 删除给定作用域下的所有键
ContextStore.clean(activeNodes) 清理上下文存储

ContextStore.open()

打开存储准备使用。在访问任何存储值之前调用此操作。

返回一个Promise,当存储准备就绪可供访问时解析。

ContextStore.close()

当运行时停止时调用,因此不会再访问任何键值。

返回一个Promise,当存储关闭时该Promise会解析。

ContextStore.get(作用域, 键名, [回调函数])

参数 描述
scope 键的作用域
key 要返回对应值的键或键数组。
callback 可选 用于调用键值的回调函数

key参数可以是一个标识单个键的字符串,也可以是一个标识多个键的字符串数组,用于返回对应的值。

如果提供了可选的callback参数,它必须是一个接收两个或更多参数的函数:

function callback(error, value1, value2, ... ) {

}

如果没有提供回调函数,并且存储支持同步访问,get函数应返回单个键值或键值数组。如果存储不支持同步访问,则应抛出错误。

ContextStore.set(作用域, 键, 值, [回调函数])

参数 描述
scope 键的作用域
key 要设置值的键或键数组。
value 数值或数值数组
callback 可选 设置值时要调用的回调函数

key参数可以是一个标识单个键的字符串,也可以是一个标识多个键的字符串数组。

key value Action
String Any Stores value under key
Array Array Stores each element of the value array under the corresponding key value. If value has fewer elements than key, it sets the missing values to null.
Array not-Array Stores value as the value of the first key - uses null for any remaining keys.

如果提供了可选的callback参数,当值被存储时将会调用它。它接收一个参数error,用于指示存储值时遇到的任何错误。

function callback(error) {

}

如果未提供回调函数,且存储支持同步访问,则set函数应在值存储完成后返回。如果存储不支持同步访问,则应抛出错误。

ContextStore.keys(作用域, [回调函数])

参数 描述
scope 要返回的键的作用范围
callback 可选 用于调用键列表的回调函数

获取给定作用域下的所有键列表。

如果提供了可选的callback参数,它必须是一个接收两个或多个参数的函数:

function callback(error, keys) {

}

如果没有提供回调函数,并且存储支持同步访问,keys函数应返回键的数组。如果存储不支持同步访问,则应抛出错误。

ContextStore.delete(作用域)

参数 描述
scope 要删除的作用域

ContextStore.clean(activeNodes)

参数 描述
activeNodes 所有仍处于活动状态的节点/流程ID列表

返回一个Promise,当存储移除不再需要的任何上下文作用域时,该Promise会解析。activeNodes列表可用于识别哪些节点和流仍被视为活跃状态。