13.2. 在 Data Grid 服务器部署中添加脚本
使用 命令行界面向 Data Grid 服务器添加脚本。
先决条件
数据网格服务器在 ___script_cache
缓存中保存脚本。如果启用缓存授权,用户必须具有 CREATE
权限才能添加到 ___script_cache
。
如果您使用默认的授权设置,则至少为用户分配 deployer
角色。
流程
根据需要定义脚本。
例如,创建一个名为
multiplication.js
的文件,该文件在单个 Data Grid 服务器上运行,具有两个参数,并使用 JavaScript 来多地给定值:// mode=local,language=javascript multiplicand * multiplier
- 创建与 Data Grid 的 CLI 连接。
使用
task
命令上传脚本,如下例所示:task upload --file=multiplication.js multiplication
验证您的脚本是否可用。
ls tasks multiplication
13.2.1. Data Grid Server 脚本
数据网格服务器脚本基于 javax.script
API,兼容任何基于 JVM 的 ScriptEngine 实施。
您好世界
以下是在单一数据网格服务器上运行的简单示例,有一个参数,并使用 JavaScript:
// mode=local,language=javascript,parameters=[greetee] "Hello " + greetee
运行上述脚本时,您将传递一个 greetee
参数的值,Data Grid 则返回 "Hello ${value}"
。
13.2.1.1. 脚本元数据
元数据提供有关 Data Grid 服务器在运行时使用的脚本的附加信息。
脚本元数据是 attribute=value
对,您添加到脚本第一行中的注释中,例如:
// name=test, language=javascript // mode=local, parameters=[a,b,c]
-
使用符合脚本语言的评论样式(
//
、;;
、#
)。 -
使用逗号分隔
attribute=value
对。 - 使用单个(')或双引号字符分隔值。
属性 | 描述 |
---|---|
| 定义执行模式,并包含以下值:
仅限
|
| 指定执行脚本的脚本引擎。 |
| 指定文件名扩展,作为设置 ScriptEngine 的替代方法。 |
| 指定用户必须执行脚本的角色。 |
| 指定此脚本的有效参数名称的数组。指定此列表中不包含的参数的调用会导致异常。 |
| (可选)设置用于存储数据的 MediaType (MIME 类型)以及参数和返回值。此属性可用于仅用于支持特定数据格式的远程客户端。
目前,您只能设置 |
13.2.1.2. 脚本绑定
数据网格将内部对象公开为脚本执行的绑定。
绑定 | 描述 |
---|---|
| 指定运行该脚本的缓存。 |
| 指定用于将数据序列化到缓存的 marshaller。 |
|
指定缓存的 |
| 指定运行该脚本的脚本管理器的实例。您可以使用此绑定从脚本运行其他脚本。 |
13.2.1.3. 脚本参数
数据网格允许您将指定参数作为运行脚本的绑定传递。
参数是 name、value
对,其中 name
是一个字符串,value
是 marshaller 可以解释的任何值。
以下示例脚本有两个参数,分别是 multiplicand
和 multiplier
。该脚本取乘 的值并
乘以倍数乘以 倍数
。
// mode=local,language=javascript multiplicand * multiplier
运行前面的脚本时,Data Grid 会响应表达式评估的结果。
13.2.2. 以编程方式创建脚本
使用 Hot Rod RemoteCache
接口添加脚本,如下例所示:
RemoteCache<String, String> scriptCache = cacheManager.getCache("___script_cache"); scriptCache.put("multiplication.js", "// mode=local,language=javascript\n" + "multiplicand * multiplier\n");