-1
我正在嘗試在grails中完成web服務休息我有例子,一切都像文檔一樣工作,我遇到的問題是我在web服務中有一個過程需要大約5分鐘,我不想在客戶端等待,但時間,而不是在過程完成時,Web服務通知我,我有關於回調的理論,但我找不到一個明確的例子,可以幫助我......謝謝提前。如何在grails中創建web服務回調
我正在嘗試在grails中完成web服務休息我有例子,一切都像文檔一樣工作,我遇到的問題是我在web服務中有一個過程需要大約5分鐘,我不想在客戶端等待,但時間,而不是在過程完成時,Web服務通知我,我有關於回調的理論,但我找不到一個明確的例子,可以幫助我......謝謝提前。如何在grails中創建web服務回調
有很多方法可以做到這一點,看看Grails' async options。
成功使用的一種方法是Promises,這不是一個回調機制,但它可以讓你脫離工作異步釋放調用資源,你只需要實現一種報告錯誤的方法,也許更新顯示任務已成功完成的內容。
這是一個諾迪例子,表示的是基礎知識...
class MyService {
import static java.util.concurrent.TimeUnit.*
import static grails.async.Promises.*
def doStuff() {
Promise p = task {
return runLongTask()
}
p.onError { Throwable err ->
log "Task failed ${err.message}"
// maybe add a row to an event logging DB table
}
p.onComplete { result ->
log "Task completed successfully"
// again maybe add a row to an event logging DB table & do something with result
}
}
}
def runLongTask() {
// do stuff & maybe return something
}
爲什麼過程需要5分鐘的原因是什麼? – user615274