2014-04-29 2 views
5

मैं अपने Grails अनुप्रयोग में Servlet 3.0 Asynchronous रेंडरिंग का उपयोग कर रहा हूँ। और मुझे निम्न त्रुटि मिल रही है।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 

कृपया इस समस्या को हल करने में मेरी मदद करें। जब तक दोनों वादे पूरा कर रहे हैं

p1.get() 
p2.get() 

यह अनुरोध को अवरुद्ध कर देगा:

यहाँ कोड

//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}" 
    } 
+2

क्या आप असफल होने वाले कोड को पोस्ट कर सकते हैं? –

+0

पूर्ण विधियों में वापसी मूल्य को परिभाषित करने का प्रयास करें (यानी आपके मामले में स्ट्रिंग परिणाम-> ... और देखें कि यह मदद करता है या नहीं। –

+0

हाय रायन, मैंने आपके द्वारा उल्लिखित पूर्ण विधि में वापसी मूल्य परिभाषित किया है। लेकिन फिर भी समस्या बनी रहती है। त्रुटि आ रही है लेकिन लगातार नहीं। अगर मैं त्रुटि का सामना करूँगा तो मैं कुछ 20 या 30 बार चलाता हूं। क्या आप कृपया मदद कर सकते हैं। –

उत्तर

2

आप अपने कोड के तल पर करने के बाद इस लाइनों को जोड़ने की आवश्यकता है। यदि आप एसिंक कार्यों को चलाने और बिना किसी त्रुटि के अनुरोध को समाप्त करने के अनुरोध को समाप्त करना चाहते हैं, तो आपको जावा निष्पादक ढांचे का उपयोग करने की आवश्यकता होगी। इस प्रश्न को जांचें: Error on async job

संबंधित मुद्दे