Grails中的Spring Webflow保持了大量的休眠会话

时间:2010-04-26 14:20:15

标签: grails spring-webflow hibernate-session

我在Grails 1.1.2上运行了一个Internet应用程序,它集成了Spring WebFlow机制。问题是有些机器人忽略了robots.txt并且经常进入流程。

由于流程的第二步需要一些人工智能,因此机器人在第一步之后会留下开放的流量。这会导致许多开放流程,这些流程会导致很多废弃的开放式休眠会话。

你知道Grails + Spring WebFlow中这种无人值守流(加上hibernate会话)的常用清理机制吗?

谢谢, 帕维尔

1 个答案:

答案 0 :(得分:0)

我的第一个建议是需要一个captia来访问流程。如果这不是一个选项,您可以在Web流程的第一步中设置一个短的会话时间,然后在第三步中将其重置为更长的时间。一个例子是 第一步

session.setMaxInactiveInterval(60);

第三步

session.setMaxInactiveInterval(600);

这将导致第一步或第二步中的任何会话在60秒不活动后死亡。当会话终止时,将清除与会话关联的任何休眠会话。假设用户在不到60秒的时间内完成第一步和第二步,他们将有10分钟完成每一步。