摘要: 目录1. ConcurrentQueue2. ConcurrentStack3. ConcurrentBag4. ConcurrentDictionary<TKey, TValue>5. BlockingCollection6. ImmutableList7. SynchronizedCollect 阅读全文
posted @ 2024-12-25 11:09 贾光辉 阅读(530) 评论(2) 推荐(8) 编辑
摘要: 目录一、引言二、ActionBlock介绍什么是 ActionBlock?ActionBlock 的特点ActionBlock 的使用场景ActionBlock 的基本用法三、假设场景四、解决方案 一、引言 上一篇博客 分享了使用 Channel 来实现针对大量数据的多线程异步处理,感谢大哥们在评论 阅读全文
posted @ 2024-12-24 16:34 贾光辉 阅读(592) 评论(4) 推荐(7) 编辑
摘要: 目录一、引言二、假设场景三、解决方案四、示例代码 一、引言 处理大量数据是一个常见的需求,传统的同步处理方式往往效率低下,尤其是在数据量非常大的情况下。本篇将介绍一种高效的多线程异步处理大数据量的方法,通过边处理边消费的方式,极大地提高了处理效率,并且减少了内存开销。这种解决方案只是实现这一需求的一 阅读全文
posted @ 2024-12-23 14:06 贾光辉 阅读(1902) 评论(14) 推荐(15) 编辑
摘要: 目录引言1. 抽象包1.1 定义日志记录接口1.2 定义日志记录抽象类1.3 表结构迁移2. EntityFramework Core 的实现2.1 数据库上下文2.2 实现日志写入3. MySqlConnector 的实现3.1 SQL脚本3.2 实现日志写入4. 使用示例 引言 在应用程序中,日 阅读全文
posted @ 2024-12-19 14:35 贾光辉 阅读(1448) 评论(2) 推荐(7) 编辑
摘要: 目录1. 原因2. 其他解决方案对比2.1. 使用 System.Threading.Timer2.2. 使用 System.Diagnostics.Stopwatch2.3. 使用示例3. 非常精准的解决方案4. 总结 1. 原因 在日常开发中,Task.Delay 是一个常用的异步延迟方法。然而 阅读全文
posted @ 2024-12-11 14:51 贾光辉 阅读(1481) 评论(5) 推荐(8) 编辑
摘要: 场景 目前一个项目中数据持久化采用EF Core + MySQL,使用CodeFirst模式开发,并且对数据进行了分库,运行期间库也会动态的增加,按照目前颗粒度分完之后,大概有一两百个库,每个库的数据都是相互隔离的。 借鉴了Github上一个开源的仓库 arch/UnitOfWork 实现UnitO 阅读全文
posted @ 2024-09-19 15:31 贾光辉 阅读(1140) 评论(5) 推荐(9) 编辑
摘要: .net core使用RabbitMQ 目录1.基本概念2.环境搭建 RabbitMQ 是一个可靠且成熟的消息传递和流代理,它很容易部署在云环境、内部部署和本地机器上。它目前被全世界数百万人使用。 1.基本概念 生产者(Producer) 生产者是一个发送消息的程序。发送消息的程序可以是任何语言编写的,只要它能够连接到RabbitMQ服务 阅读全文
posted @ 2024-03-12 10:29 贾光辉 阅读(727) 评论(0) 推荐(3) 编辑
摘要: ## 1. 关于[Minio Client]((https://min.io/docs/minio/linux/reference/minio-mc.html?ref=docs)): > >MinIO Client是一个命令行工具,用于与Minio或云存储服务进行交互。它支持文件系统和Amazon 阅读全文
posted @ 2023-06-01 14:49 贾光辉 阅读(3199) 评论(0) 推荐(0) 编辑
摘要: 认识Github Actions Github Actions是什么? Github Actions 官方介绍:GitHub Actions是一个持续集成和持续交付(CI/CD)平台,允许您自动化构建、测试和部署管道。您可以创建构建和测试存储库中的每个拉取请求的工作流,或者将合并的拉取请求部署到生产中。 GitHub Actions 阅读全文
posted @ 2022-12-08 17:38 贾光辉 阅读(252) 评论(0) 推荐(2) 编辑