Ich benutze Servlet 3.0 Asynchronous Rendering in meiner Grails-Anwendung. Und ich erhalte folgenden Fehler.Asynchrone Programmierung in Grails
| 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
Bitte helfen Sie mir, dieses Problem zu lösen.
Hier ist der Code
//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}"
}
Können Sie den fehlerhaften Code buchen? –
Versuchen Sie, den Rückgabewert in den onComplete-Methoden (d. H. String result-> ... in Ihrem Fall) zu definieren, und sehen Sie, ob es hilft. –
Hallo Raanan, ich habe den Rückgabewert in der onComplete-Methode definiert, wie Sie erwähnt haben. Aber das Problem bleibt bestehen. Der Fehler kommt, aber nicht häufig. Wenn ich etwa 20 oder 30 mal laufe, stoße ich auf den Fehler. Können Sie bitte helfen. –