缓存以便以后写入asp.net webservice中的数据库?

Vim*_*987 5 sql-server asp.net caching web-services

我正在编写一个Web服务,对于每个方法调用,必须将日志条目写入数据库.在特定时间,对此方法的调用可能非常密集(高达1-2k请求/分钟),并且我们的服务器不是那么强大.

我想用a List<Log>来缓存日志条目,然后:

  • 批量插入30-40行到数据库,这大大减少了开销
  • 当超过30秒或1分钟没有更多请求时,所有剩余的缓存将被写入数据库.

第一个条件是OK,但我不知道如何实现第二个条件.

我怎么能这样做,而不会给我的Web服务增加太多开销?

编辑:我根据小麦的建议解决了这个问题.

  • 对于每个日志条目,我将其直接发送到MSMQ队列并忘记它
  • 一个独立的服务连续运行,所有日志条目当前都在队列中,批量插入数据库,然后休眠30秒.

在这种情况下,MSMQ非常有帮助!