【发布时间】:2012-01-11 15:24:09
【问题描述】:
这个sn-p出现了一个奇怪的问题:
class FooController {
def barService
def update = {
log.debug("I'm getting executed")
barService.doFoo()
render "Done"
}
}
当我现在在浏览器中输入http://my.domain.tld/fancyapp/foo/update(我的情况是Firefox)时,update 中的代码会执行3次。
编辑 1: barService.doFoo() 包含大量计算,因此需要很长时间才能完成。
编辑 2: @hvgotcodes:不,抱歉,没有身份验证,我的 UrlMappings.groovy 看起来像这样:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
}
}
@Jarred:不,只有常见的嫌疑人Bootstrap.groovy、BuildConfig.groovy、Config.groovy、DataSource.groovy 和UrlMappings.groovy。
提示任何人?
【问题讨论】:
-
发生了其他事情——您有任何 url 映射、身份验证或其他任何事情吗?
-
你的 conf/ 目录中有过滤器吗?
-
快速回复 - 我用答案和代码更新了问题。
-
取出 barService.doFoo() 调用,看看它是否仍然执行 3 次。我无法想象它会做什么,但值得一试。
-
使 doFoo() 更快 :) 如果您不需要 doFoo() 的响应,您可以生成一个线程并让它在后台运行。但我认为有一种方法可以设置请求的超时时间(这对你来说可能是一个更好的解决方案)我只是不知道该怎么做。
标签: grails groovy controller request action