当我在airospike中向UDF函数(LUA脚本)传递太多参数时,我收到一条错误,指出“为Func类型的声明指定了错误的类型args数。”。
我试图将5k值作为列表传递,一个“值”,其中包含5k个字符串对象。我用100尝试了它,它仍然给了我这个问题,但它适用于10。
调用代码类似于:
var statement = new Statement();
statement.SetNamespace("blah");
statement.SetSetName("blu");
statement.SetBinNames("blee");
using (var result = Client.QueryAggregate(new QueryPolicy()
{
timeout = 600000
}, statement, packageName, functionName, parameters))
{
while (result.Next())
{
retVal.Add((T) result.Object);
}
}
Aerospike团队,知道我可以在LUA udf的列表参数中传递的最大数量是多少?有没有办法扩大这个?
*这是一种背景方法,每天运行两次,这里的表现并不重要。
答案 0 :(得分:2)
Lua似乎对大量参数(超过50个)感到不满。您应该参数化Map()或表并将其作为一个参数传递,然后将其解压缩到您的lua函数中。
请参阅Known Limitations的UDF Guide部分。