ConcurrentQueue是从ASP.NET MVC卸载日志记录的最佳方法吗?

问题描述

我有一个ASP.NET MVC应用程序,该应用程序严重依赖于事件记录,该记录与sql Server同步完成。在繁重的负载和大量日志中,我需要从主线程卸载日志记录。 我正在查看ConcurrentQueue,这是从ASP.NET卸载日志记录的最佳方法吗?

我研究了几种选择,例如使用外部应用程序处理日志并将其插入数据库

  • 使用MSMQ实现消息队列
    • 太多消息可能会阻塞队列,而我们可能永远也追不上插入数据库的时间?
  • 登录到文本文件
    • 慢速序列化和写入磁盘(?)
    • 具有冗余功能一个加分

或者使ASP.NET本身通过登录ConcurrentQueue / BlockingCollection

来处理插入数据库的操作
  • 使用this code from "learn-some-code"在“启动”上启动长时间运行的任务并检查队列。
    • 占地面积小
    • 如果任务意外退出会发生什么情况
    • 不是为长时间运行的任务而构建的ASP.NET(?)
  • 配置Hangfire或类似方法以检查队列

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)