在我们的应用程序中,我们使用 grails 框架和 SQL 服务器作为数据库。我们有多个站点,这些站点可以有多个用户(几个用户),如果他们通过 AJAX 访问相同的方法,这可能会导致问题,所以我们将该方法设置为同步方法,并最大限度地减少我们存储数据的数据库交互基于站点的地图,因为来自一个站点的所有用户都将获得相同的数据,如果数据超过 10 秒,我们会从数据库中获取数据并更新地图对象。在这里,我们在从数据库获取站点对象的同步方法的第一行中遇到了很多数据库连接关闭问题。这里有什么问题,我们如何解决这个问题?
def synchronized getData(params){
Site site = Site.get(params.siteId)
// Here we are checking whether site data does not exists in map
// or the data expired (10 second older data) then we get data from
// database and update the map object
// Then here we create new list object from the data in map object
return list
}