Grails中的异步编程
发布时间:2020-12-14 16:27:45 所属栏目:大数据 来源:网络整理
导读:我在Grails应用程序中使用Servlet 3.0异步渲染.我收到以下错误. | Error 2014-04-29 11:10:24,125 [Actor Thread 28] ERROR gpars.LoggingPoolFactory - Async execution error: nullMessage: null Line | Method- 61 | doCall in org.grails.async.factory.
我在Grails应用程序中使用Servlet 3.0异步渲染.我收到以下错误.
| Error 2014-04-29 11:10:24,125 [Actor Thread 28] ERROR gpars.LoggingPoolFactory - Async execution error: null Message: null Line | Method ->> 61 | doCall in org.grails.async.factory.gpars.GparsPromise$_onComplete_closure1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 62 | run in groovyx.gpars.dataflow.DataCallback$1 | 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor | 615 | run in java.util.concurrent.ThreadPoolExecutor$Worker ^ 724 | run . . . in java.lang.Thread 请帮我解决这个问题. 这是守则 //Promise 1 Promise p1 = task { println id+" p1 Task is Runing" sleep(4000) println id+" p1 Thread Woke Up" return "p1Completed" } //Promise 2 Promise p2 = task { println id+" p2 Task is Runing" sleep(4000) println id+" p2 Thread Woke Up" return "p2Completed" } p1.onComplete { result -> println id+" Promise p1 Completed returned "+result } p1.onError { Throwable err -> println id+" p1 An error occured ${err.message}" } p2.onComplete { result -> println id+" Promise p2 Completed returned "+result } p2.onError { Throwable err -> println id+" p2 An error occured ${err.message}" } 解决方法
您需要在代码底部添加以下行:
p1.get() p2.get() 这将阻止请求,直到两个承诺都完成.如果要运行异步任务并在不同步等待响应的情况下结束请求,则需要使用java executor框架.检查这个问题:Error on async job (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |