代码之家  ›  专栏  ›  技术社区  ›  techfoobar

Grails审核日志记录插件-性能

  •  1
  • techfoobar  · 技术社区  · 13 年前

    我正在使用 Grails Audit Logging Plugin 用于记录我的grails应用程序上的创建/编辑/删除操作。

    是否有人知道实际的日志记录(将日志保存到DB)是在单独的线程中执行的,还是只有在日志记录完成后才会返回对请求的响应(顺便修改一些记录)。在他们的文档或外部找不到任何关于这方面的信息。

    1 回复  |  直到 13 年前
        1
  •  2
  •   Szymon Jednac    13 年前

    这个 Hibernate Event System 已使用 internally 通过这个插件。消息是以阻塞的方式处理的,否则将收到响应 之后 日志记录完成。

    它很容易复制-只需创建一个自定义的Hibernate侦听器:

    import org.hibernate.event.PostInsertEvent;
    import org.hibernate.event.PostInsertEventListener;
    import org.hibernate.event.PostUpdateEvent;
    import org.hibernate.event.PostUpdateEventListener;
    
    class HibernateDummyListener implements PostInsertEventListener, PostUpdateEventListener {
    
        public void onPostInsert(final PostInsertEvent event) {
            println "Hibernate: ON POST INSERT"
    
            //No delay
        }
    
        public void onPostUpdate(final PostUpdateEvent event) {
            println "Hibernate: ON POST UPDATE"
    
            Thread.sleep(10000)
        }
    }
    

    …和resources.groovy:

    beans = {
       hibernateDummyListener(HibernateDummyListener)
    
       hibernateEventListeners(HibernateEventListeners) {
          listenerMap = ['post-insert':hibernateDummyListener,
                         'post-update':hibernateDummyListener]
       }
    }