首页   快速返回

aerospike中使用lua注意点     所属分类 aerospike
IAerospikeClient client;

public Object execute(WritePolicy policy, Key key, String packageName, String functionName, Value... args) 
		throws AerospikeException;
		
Value 支持复杂类型
基础类型 list map 等

packageName 为 lua脚本名字

譬如 dyyx.lua   packageName 为 dyyx
	
只有全局函数才能被 客户端调用

lua不存在
com.aerospike.client.AerospikeException: Error Code 100: UDF: Execution Error 1


方法找不到
com.aerospike.client.AerospikeException: Error Code 100: function not found
 
 

function getInfo(rec)
	local map = map()
	-- must use map = {} !!!  else return null !!!
	-- local map = {}
	map["version"]=VERSION
	return map
end

返回值 必须使用 aerospike 的类型 ,譬如 list map 等
否则返回值为null 


注意变量命名 ,避免覆盖 

local map = map()
...
local paramMap = map()

Exception in thread "main" com.aerospike.client.AerospikeException: Error Code 100: /opt/aerospike/usr/udf/lua/xxx.lua:62: attempt to call local 'map' (a userdata value)

自定义变量 map 覆盖了 aerospike 的 map 类型

上一篇     下一篇
权益类与固收类基金

lua中pairs和ipairs的区别

lua动态方法调用实例

指数基金的几种形式

线程池要点

员工离职前的9种征兆