
日拱一卒,碎片学习
文章平均质量分 50
记录下碎片知识
予早随笔
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于 FastAPI 和 OpenFeature 使用 Feature Flag 控制业务功能
业务场景:多租户系统跨域转账,需要控制某租户下某用户是否可以在某域转账。原创 2025-08-23 15:38:29 · 109 阅读 · 0 评论 -
SQLAlchemy 查询结果格式分析
SQLAlchemy 中结果集 Result 及其子类定义在 sqlalchemy\engine\result.py 中,故分析 Result 相关数据获取方法(例如,Result.all()、Result.one_or_none())返回的”最终数据格式“从此开始,在SQLALchemy 中,这个”最终数据格式“由。一种通用的“行”形式,适用于不同结果对象返回的不同类型的“行”,包括行、行映射和标量值。具体形式以及”最终数据格式“的部分形式,所代表的”行“构成。原创 2025-04-24 01:30:26 · 429 阅读 · 0 评论 -
英语机翻经典错误
与 SQL 标准相比 ,table_factor 的语法进行了扩展。后者只接受 table_reference,不接受它们的列表。原创 2025-04-21 20:40:23 · 105 阅读 · 0 评论 -
Python 冷门魔术方法
Python 3.6 新增。父类派生子类后会调用该方法,方法中 cls 指向派生出的子类。方法的目的是允许标准库泛型类的运行时形参化以更方便地对这些类应用 类型提示。原创 2025-04-15 23:58:31 · 700 阅读 · 0 评论 -
Python 中使用单例模式
有这么一种场景,Web服务中有一个全局资源池,在需要使用的地方就自然而言引用该全局资源池即可,此时可以将该资源池以单例模式实现。随后,需要为某一特殊业务场景专门准备一个全局资源池,于是额外复制一份代码新建了一个全局资源池,这里的问题是本身两个池子没有任何区别,仅仅为了隔离资源而需要两个单例,这里存在一个代码复用问题。Python 使用单例模式最佳方案是使用元类。原创 2025-04-10 23:21:09 · 289 阅读 · 0 评论 -
ContextVars 在 FastAPI 中的使用
在 FastAPI 中通常会使用 Depends 将数据库连接注入 endpoint,但是若 endpoint 函数调用的某个函数需要 endpoint 中的这个数据库连接,朴素的方法是通过函数参数传递,这样就导致一个问题,只要被调用方需要调用方的数据库连接,就必须增加一个数据库连接的函数入参,此时可以使用 ContextVars 和 SQLAlchemy async_scoped_session 优化这一点。SQLAlchemy 不推荐新项目使用 scoped 方式获取数据库连接。原创 2025-04-02 23:53:19 · 882 阅读 · 0 评论 -
git kex_exchange_identification 相关问题
【代码】git kex_exchange_identification 相关问题。原创 2025-04-02 00:11:19 · 455 阅读 · 0 评论 -
goroutine 生命周期
https://cs.opensource.google/go后面跟函数可以创建协程运行协程被创建后,它会被放入可运行队列中等待被调度执行。一旦协程被调度执行,它就进入了运行状态,开始执行其中的代码逻辑。在运行状态下,协程会被调度器分配到可用的物理线程上运行。go 中 goroutine 不能被外部停止(例如 goroutine A 中停止 goroutine B),仅能自行停止,包括如下情况:正常执行完毕结束或者 panic使用 chan使用 Context 取消 goroutine超时手动取消原创 2025-03-15 12:22:42 · 856 阅读 · 0 评论 -
HTTP 请求头、响应头常见字段分析
您的Web服务器认为,客户端发送的 HTTP 数据流是正确的,但进入网址 (URL) 资源 , 需要用户身份验证 , 而相关信息 1 )尚未被提供, 或 2 )已提供但没有通过授权测试。这就是通常所知的“ HTTP 基本验证 ”。在HTTP请求的方法不是“HEAD”,并且服务器想让客户端知道为什么没有权限的情况下,服务器应该在返回的信息中描述拒绝的理由。最近用postman偶然遇见了401的报错,是请求用户的token这个接口的时候,所有的Body请求参数和Headers都一样,但是就是报错401。原创 2025-02-10 22:04:50 · 1583 阅读 · 0 评论 -
C++ 编译 g++ -> make -> cmake
另外,WinLibs 在 https://sourceforge.net/projects/winlibs-mingw/files 也有托管,https://sourceforge.net/projects/winlibs-mingw/files/14.2.0posix-19.1.1-12.0.0-ucrt-r2/winlibs-x86_64-posix-seh-gcc-14.2.0-mingw-w64ucrt-12.0.0-r2.zip/download。老旧的异常处理模型,性能稍差。原创 2025-02-07 22:46:11 · 1159 阅读 · 0 评论 -
C/C++编译器
C/C++ 代码是不可跨平台的,Windows 和 Unix-like 有着不同的 API,C/C++ 在不同平台有着不同编译器。原创 2025-02-05 21:47:22 · 874 阅读 · 0 评论 -
PDCA 循环法
PDCA 循环法,即 Plan(计划) -> Do(实施) -> Check(检查) -> Act(处理)的一种持续改进模型。原创 2025-02-01 15:17:01 · 1423 阅读 · 0 评论 -
扫码登录方案
二维码解码后内容为:https://passport.bilibili.com/h5-app/passport/login/scan?基于轮询方案获取二维码状态。扫码登陆,利用已登录设备授权未登录设备登录的方式。二维码状态在整个扫码登录流程中的状态。一段时间以后,状态变为二维码已失效。以哔哩哔哩扫码登录为例。扫码登录中涉及的角色。手机上会提示登录确认。原创 2024-07-29 22:41:54 · 370 阅读 · 0 评论 -
MySQL 事务与 MQ消息发送一致性
解决方案:事务提交之后再发送消息。原创 2024-07-28 18:23:10 · 284 阅读 · 0 评论 -
知识管理方法论
这时知识库闪亮登场,人脑的优势在于接收信息、处理信息、而不在于存储信息,由于人脑并不能完全存储我们接收处理并总结好的信息,所以需要我们在下一次的时候再次接收和处理,我们可以选择这次处理好信息后,存储到知识库里,然后下次先从知识库检索,由于知识库存储的都是我们处理过的信息,在次理解处理起来就会很快,这个知识是可以复用的,这样极大提高了我们的成长速度,人类历史上普及纸张之后文明加速发展同理,站在巨人的肩膀上,站在过去的我的肩膀上,知识库越丰富,过去的我身高越高肩膀越厚实。原创 2024-07-28 01:12:09 · 782 阅读 · 0 评论 -
即时通讯系统单聊、群聊消息顺序一致性解决方案
上述整个消息发送流程,整体上是遵循先来后到的原则,但由于多种因素(主要是网络因素)的影响,会造成步骤七顺序不可控,在实际网络环境下,可以确定一定时间间隔以外的消息顺序是可信的,例如,十分钟之前发送成功的消息和十分钟之后发送成功的消息我们可以认为其自然顺序是正确的,在现有网络环境下,一条消息从发送到接收中间的影响因素不会造成10分钟这么大误差,也就是说假定这个误差是10分钟,只需要保证当前以及往前十分钟内的消息顺序即可。原创 2024-07-27 14:16:02 · 853 阅读 · 0 评论 -
海量元素中是否存在某一元素快速且高置信度判断方案
布隆过滤器使用场景判断给定数据是否存在:比如判断一个数字是否存在于包含大量数字的数字集中(数字集很大,上亿)、 防止缓存穿透(判断请求的数据是否有效避免直接绕过缓存请求数据库)等等、邮箱的垃圾邮件过滤(判断一个邮件地址是否在垃圾邮件列表中)、黑名单功能(判断一个 IP 地址或手机号码是否在黑名单中)等等。一个例子,有两个人,金发单眼皮张三、黑发双眼皮李四,邀请名单记录了金发、黑发、单眼皮、双眼皮四个特征,假如有个白发单眼皮王五,显然不在名单中,但是有个金发双眼皮老六,就造成了误判。布隆过滤器有两种操作。原创 2024-07-27 10:01:32 · 429 阅读 · 0 评论 -
tcpdump
抓非空包 分析一个服务是否有有效流量。原创 2024-07-25 21:43:18 · 146 阅读 · 0 评论 -
Content-Type
原创 2024-07-25 21:27:57 · 157 阅读 · 0 评论 -
数据库连接池满问题分析
接口耗时很长且频繁调用挤占数据路连接资源,https://www.bilibili.com/video/BV1rm411m7th/?spm_id_from=333.999.0.0&vd_source=1c6bbc08f3ca11adc6d983810711f9ca原创 2024-07-25 00:27:21 · 215 阅读 · 0 评论 -
内存占用高问题排查思路
可能性一:突发大批数据操作。使用消息队列等方式削峰。可能性二:缓慢内存泄漏。原创 2024-07-25 00:17:32 · 199 阅读 · 0 评论 -
接口慢问题排查思路
接口慢是症状第一步先查看各种指标,CPU、内存、线程池占用情况。某一指标占用高基本可以说明由于缺少资源导致接口处理速度变慢,这时知道资源占用高可以往哪个地方想走一遍正常分析流程,过一遍链路,第一段:前端发起请求到服务器,第二段:服务器处理请求然后返回https://www.bilibili.com/video/BV1jJ4m1T7sf/?spm_id_from=333.999.0.0&vd_source=1c6bbc08f3ca11adc6d983810711f9ca原创 2024-07-24 23:21:24 · 259 阅读 · 0 评论 -
如何查看日志
cat 把整个日志文件刷屏。原创 2024-07-24 23:00:00 · 296 阅读 · 0 评论 -
order by 索引优化
add_time + 0 表达式使得无法使用add_time索引,则会先使用order_status进行过滤数据,然后对add_time进行排序,这样对于稀疏数据更快,优化过后耗时0.06s。根据 add_time 顺序扫描数据,然后根据 where 过滤数据,order_status=4的数据很稀疏,会导致扫描很多数据。原创 2024-07-21 23:45:48 · 269 阅读 · 0 评论