C# 快速写入日志 不卡线程 生产者 消费者模式
有这样一种场景需求,就是某个方法,对耗时要求很高,但是又要记录日志到数据库便于分析,由于访问数据库基本都要几十毫秒,可在方法里写入BlockingCollection,由另外的线程写入数据库。
可以看到,在我的机子上面,1ms写入了43条日志。
BlockingCollection<LogModel> logQuenen = new BlockingCollection<LogModel>(1000);private void button2_Click(object sender, EventArgs e){Task.Run(() => {for (int i = 0; i < 100; i++){LogModel logModel = new LogModel();logModel.Log=Guid.NewGuid().ToString();logModel.Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");logQuenen.Add(logModel);}});Task.Run(() =>{while (true) {var logModel= logQuenen.Take();string sql = $@"INSERT INTO LogTest
(TextC,TimeC
)
VALUES
('{logModel.Log}' -- TextC - VARCHAR(255),'{logModel.Time}' -- TimeC - TIMESTAMP(3)
);";Function.MySQLHelper.ExecuteNonQuery(sql);}});MessageBox.Show("已点击!!!!!");}public class LogModel{ public string Log { set;get; }public string Time { set;get; }}

相关文章:
C# 快速写入日志 不卡线程 生产者 消费者模式
有这样一种场景需求,就是某个方法,对耗时要求很高,但是又要记录日志到数据库便于分析,由于访问数据库基本都要几十毫秒,可在方法里写入BlockingCollection,由另外的线程写入数据库。 可以看到,在…...
Pandas将对角线元素设为1
Pandas将对角线元素设为1 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 入门之pandas的使用 提示:np.fill_diagonal(df.values, 1)的用法 Pandas将对角线元素设为1 Pandas将对角线元素设为…...
WPF实战学习笔记28-登录界面
添加登录界面UI 添加文件loginview.xaml。注意本界面使用的是md内的图标。没有登录界面的图片 <UserControlx:Class"Mytodo.Views.LoginView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsof…...
01背包
动态规划解题步骤: 动态规划问题,一般从三个步骤进行考虑。 步骤一:集合及集合的状态。 所谓的集合,就是一些方案的集合。 用 g[i][j] 表示从前 i 种物品中进行选择,且总体积不大于 j 的各个选法获得的价值的集合。注意&#…...
064、故障处理之OMM_TiDB
oom 内存溢出,内存泄漏,相当于TiDB不能用了 TiDB Server OOM对业务的影响 TiDB Server上的业务SQL会失败业务响应时间升高前端体验变差 诊断方法 客户端应用 ERROR 2013(HY000): Lost connection to MySQL Server during query日志 dmesg -T | gr…...
网络设备中的配置文件管理
建立强大网络的第一步是为灾难和网络中断做好准备,许多企业在中断期间遭受损失,因为他们缺乏备份计划并且配置管理不达标,使用配置文件管理工具进行适当的配置文件管理不仅有助于处理网络中断,还有助于优化网络性能。 使用配置文…...
HCIP BGP综合实验
题目 1、AS1存在两个环回,一个地址为192.168.1.0/24该地址不能在任何协议中宣告; 2、AS3中存在两个环回,一个地址为192.168.2.0/24该地址不能在任何协议中宣告,最终要求这两个环回可以互相通讯; 3、AS间的骨干链路I…...
【mysql学习篇】Order by与Group by优化以及排序算法详解
一、Order by与Group by优化 Case1: 分析: 利用最左前缀法则:中间字段不能断,因此查询用到了name索引,从key_len74也能看出,age索引列用在排序过程中,因为Extra字段里没有using filesort 注意…...
【业务功能篇60】Springboot + Spring Security 权限管理 【终篇】
4.4.7 权限校验扩展 4.4.7.1 PreAuthorize注解中的其他方法 hasAuthority:检查调用者是否具有指定的权限; RequestMapping("/hello")PreAuthorize("hasAuthority(system:user:list)")public String hello(){return "hello Sp…...
文章详情页 - 评论功能的实现
目录 1. 准备工作 1.1 创建评论表 1.2 创建评论实体类 1.3 创建 mapper 层评论接口和对应的 xml 实现 1.4 准备评论的 service 层 1.5 准备评论的 controller 层 2. 总的初始化详情页 2.1 加载评论列表 2.1.1 实现前端代码 2.1.2 实现后端代码 2.2 查询当前登录用户的…...
使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Day 69-70:矩阵分解
代码: package dl;import java.io.*; import java.util.Random;/** Matrix factorization for recommender systems.*/public class MatrixFactorization {/*** Used to generate random numbers.*/Random rand new Random();/*** Number of users.*/int numUsers…...
数据结构:树的存储结构
学习树之前,我们已经了解了二叉树的顺序存储和链式存储,哪么我们如何来存储普通型的树结构的数据?如下图1: 如图1所示,这是一颗普通的树,我们要如何来存储呢?通常,存储这种树结构的数…...
Vue前端渲染blob二进制对象图片的方法
近期做开发,联调接口。接口返回的是一张图片,是对二进制图片处理并渲染,特此记录一下。 本文章是转载文章,原文章:Vue前端处理blob二进制对象图片的方法 接口response是下图 显然,获取到的是一堆乱码&…...
Java的标记接口(Marker Interface)
Java中的标记接口(Marker Interface)是一个空接口,接口内什么也没有定义。它标识了一种能力,标识继承自该接口的接口、实现了此接口的类具有某种能力。 例如,jdk的com.sun.org.apache.xalan.internal.xsltc.trax.Temp…...
Kafka基础架构与核心概念
Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。架构特点是分区、多副本、多生产者、多订阅者,性能特点主要是…...
观察者模式与观察者模式实例EventBus
什么是观察者模式 顾名思义,观察者模式就是在多个对象之间,定义一个一对多的依赖,当一个对象状态改变时,所有依赖这个对象的对象都会自动收到通知。 观察者模式也称为发布订阅模式(Publish-Subscribe Design Pattern)࿰…...
科普 | OSI模型
本文简要地介绍 OSI 模型 1’ 2’ 3。 更新:2023 / 7 / 23 科普 | OSI模型 术语节点链路协议网络拓扑 概念作用结构应用层表示层会话层传输层网络层数据链路层物理层 数据如何流动OSI 和TCP/IP 的对应关系和协议参考链接 术语 节点 节点( Node &#…...
redis相关异常之RedisConnectionExceptionRedisCommandTimeoutException
本文只是分析Letture类型的Redis 池化连接出现的连接超时异常、读超时异常问题。 1.RedisConnectionException 默认是10秒。 通过如下可以配置: public class MyLettuceClientConfigurationBuilderCustomizer implements LettuceClientConfigurationBuilderCusto…...
Merge the squares! 2023牛客暑期多校训练营4-H
登录—专业IT笔试面试备考平台_牛客网 题目大意:有n*n个边长为1的小正方形摆放在边长为n的大正方形中,每次可以选择不超过50个正方形,将其合并为一个更大的正方形,求一种可行的操作使所有小正方形都被合并成一个n*n的大正方形 1…...
M2FP在虚拟试衣间的应用:快速识别人体部位,助力电商设计
M2FP在虚拟试衣间的应用:快速识别人体部位,助力电商设计 1. 虚拟试衣间的技术挑战 在电商领域,虚拟试衣技术正在改变用户的购物体验。传统试衣间面临诸多痛点: 用户无法直观看到服装上身效果退换货率高,增加运营成本…...
GME-Qwen2-VL-2B效果实测:LaTeX公式截图转代码的准确率与效率
GME-Qwen2-VL-2B效果实测:LaTeX公式截图转代码的准确率与效率 如果你经常需要处理学术论文或者技术文档,肯定遇到过这样的麻烦事:看到一篇PDF或者网页上有个特别复杂的数学公式,想在自己的文档里用,结果发现要么没提供…...
如何组合seo关键词
如何组合SEO关键词 在当今的数字营销环境中,如何组合SEO关键词成为了每一个网站运营者的首要任务。这不仅决定了网站的可见度,还直接影响到流量和最终的转化率。本文将详细探讨如何组合SEO关键词,以实现最佳的搜索引擎优化效果。 什么是SEO…...
中山网站建设哪家好?从AI搜索变革看网站建设的规范流程
在讨论“中山网站建设哪家好”之前,有一个更底层的问题需要先理解:👉 网站的价值,正在被AI重新定义。一、信息获取路径正在发生根本变化过去二十年,用户获取信息的方式大致是:用户提出问题 → 打开搜索引擎…...
千问3.5-2B部署教程:GPU利用率监控脚本(nvidia-smi + prometheus exporter)
千问3.5-2B部署教程:GPU利用率监控脚本(nvidia-smi prometheus exporter) 1. 引言 在部署和使用千问3.5-2B这类视觉语言模型时,GPU资源的高效利用至关重要。本教程将手把手教你如何搭建一个轻量级的GPU监控系统,实时…...
Transformer 原理与实现(二):从代码看透 Transformer
在上一篇文章 [Transformer 原理与实现(一):从 Attention 到编码解码机制](https://blog.csdn.net/Cha0DD/article/details/159753362) 中,我们从概念层面深入理解了 Transformer 的核心机制。 今天,我们将通过实际的…...
电路板测试点设计与自动化测试实践
1. 测试点的本质作用在电子制造领域,测试点(Test Point)是电路板上那些看似多余的小圆点,但它们却是保证产品质量的关键设计。作为一名有十年经验的硬件工程师,我见过太多因为忽视测试点设计而导致量产失败的案例。测试…...
实战揭秘:抖音直播弹幕抓取的三大技术突破与完整实现方案
实战揭秘:抖音直播弹幕抓取的三大技术突破与完整实现方案 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2025最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在直播电商蓬勃发…...
JSP 语法详解
JSP 语法详解 引言 JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在网页中嵌入Java代码,以实现与数据库的交互和动态内容生成。JSP语法简洁明了,易于学习和使用。本文将详细介绍JSP的语法结构,帮助读者更好地理解和应用JSP技术。 JSP基本语法 1. JSP页面结构…...
2024年实测:火狐浏览器上这3款广告过滤插件,谁才是真正的网页加速器?
2024年火狐浏览器广告过滤插件终极对决:谁才是网页加速王者? 在数字时代,网页浏览速度直接影响着我们的工作效率和上网体验。对于火狐浏览器用户来说,选择一款高效的广告过滤插件不仅能屏蔽恼人的广告,更能显著提升页面…...
