当前位置: 首页 > 知识库问答 >
问题:

Grails Quartz MongoDB连接继续打开

屠兴旺
2023-03-14

我有一个grails应用程序,它使用quartz每20秒循环一次域类。

每次执行quartz作业时,都会与Mongo建立另一个连接。由于某种原因,前几次没有关闭,因此在11次连接后,作业停止工作(连接超时)。我尝试了另一种方法,通过在操作中调用服务方法来调用URL,但连接数仍在不断增加。当我在没有运行Quartz作业的情况下反复调用URL时,只会创建4个新连接,不再有。

你知道怎么做吗?

Grails 2.1.2、MongoDB插件1.1.0、Quartz 1.0

共有1个答案

邹举
2023-03-14

对我来说,它与以下解决方法一起工作:将执行代码包装在[SomeDomain]中。使用NewSession{}呼叫。

用户域的示例

def execute() {
   User.withNewSession {
      //your code
   }
}
 类似资料:
  • 问题内容: PHP中是否可以关闭连接(本质上告诉浏览器没有更多数据可用)但是可以继续处理。我正在考虑的特定情况是,我想提供缓存的数据,然后,如果缓存已过期,我仍然会提供缓存的数据以快速响应,关闭连接,但继续进行处理以重新生成并缓存新的数据数据。本质上,唯一的目的是使网站显得更具响应性,因为在用户等待内容重新生成时不会偶尔出现延迟。 更新: PLuS对我一直在寻找最接近的答案。为了澄清几个人,我正在

  • 本文向大家介绍Go 打破并继续,包括了Go 打破并继续的使用技巧和注意事项,需要的朋友参考一下 示例 像许多其他语言一样,Go也支持打破循环并继续进行下一个迭代: 该break和continue语句还接受一个可选的标签,用于标识外环路与声明的目标:            

  • 问题内容: 在许多使用MongoDB的入门示例中,您将看到类似以下的代码: 如果MongoDB与任何其他数据库系统一样,并且操作通常在时间上很昂贵。 所以,我的问题是这样的:只需执行一次,将返回值分配给某个全局模块即可,模块中具有各种功能就可以进行各种与数据库相关的工作(将文档插入集合,更新文档等)。 ),然后由应用程序的其他部分调用它们(从而重新使用该值),然后,在应用程序完成后,才执行。 换句

  • 问题内容: 好的,所以我认为接口是一种强制对象实现一定数量功能而无需使用继承的方法。有点像合同。我半明白他们的意思。 但是,如果您在界面中拥有的全部是: 而且它没有这样的实现,那么使用接口的人每次都必须从头开始编写它。 如果要创建许多都实现此类功能的类,并且实现仅稍有不同,则将需要大量的工作。 感谢所有帮助我解决这个问题的人,因为我知道这非常重要。 问题答案: 接口是在Java中创建多重继承的唯一

  • 跳过当前循环的剩余部分并继续下一次循环。在各种循环中都是有效的。 Continue [, LoopLabel] [AHK_L 59+]:如果指定了,则 LoopLabel 表示此语句所应用的循环;通过标签名或嵌套层级的数值。如果省略或为 1,此语句应用于它所在的最内层循环。LoopLabel 必须为常量,不支持变量和表达式。如果指定标签,则它必须直接指向循环命令。 Continue 的行为如同直接

  • 简介 本章介绍的是Scheme中特有的数据类型——继续(Continuation)。由于其他程序设计语言并没有这种数据类型,因此它难于理解。当下,你并不需要彻底理解清楚,只需要大致了解。 我会讲解广义的继续和简短地介绍Continuation-Passing-Style(CPS),然后再讲解Scheme中的继续。我认为通过这种方式理解继续会比较容易。 广义继续 继续是在返回到顶层(Top leve