-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