【发布时间】:2018-02-14 14:17:21
【问题描述】:
我需要在 Jexl 中同时执行多个操作。在官方指南中,我找到了注释 @parallel: https://commons.apache.org/proper/commons-jexl/reference/syntax.html 但是我没有找到任何如何使用它的示例。
谁能提供一些例子?
我认为它会像这样工作:
@parallel { a.someMethod() }
@parallel { b.someMethod() }
但似乎它仍在按顺序工作。 第二个例子我试过了,还是不行:
var loopFunction = function(title){
var i = 0;
logger:info("Starting "+title);
while(i<100) {
logger:info(title+"="+i);
utils:sleep(25);
i += 1;
}
logger:info("Ending "+title);
}
@parallel loopFunction('i');
@parallel loopFunction('j');
【问题讨论】:
-
当你说“它仍在按顺序工作”时,这是什么意思?你是怎么检查的?
-
我尝试通过日志记录向此方法添加大循环(5 秒)。我在
a.someMethod()日志之后得到了b.someMethod()日志。 -
也许可以在
utils.sleep中尝试随机时间(以便 i 和 j 有不同的等待时间)。如果它不能解决问题,我会让 jexl 专业人员帮助你:P -
尝试了不同的时间,不同的循环长度。仍然打印
Starting i i=1 ... i=100 Ending i Starting j j=1 ... j=250 Ending j