阿牛

用PHPStan自定义规则检测Laravel中withCount导致的隐式N+1与内存泄漏

#用PHPStan自定义规则检测Laravel中withCount导致的隐式N+1与内存泄漏

线上告警DB CPU飙升至92%,慢查日志显示大量SELECT COUNT(*) FROM orders WHERE user_id = ?,但代码明明用了withCount。深入排查发现,在循环中对已预加载的模型反复调用$user->orders()->count()会绕过缓存触发隐式N+1查询。本文揭示withCount的常见误用,并展示如何通过PHPStan自定义规则拦截此类隐患,避免内存泄漏与性能瓶颈。

阿牛 11
PHP
git checkout
用FastAPI和Celery构建爬虫数据清洗管道:解决去重与字段校验瓶颈

#用FastAPI和Celery构建爬虫数据清洗管道:解决去重与字段校验瓶颈

爬虫数据清洗中,重复数据和字段缺失是常见瓶颈。本文介绍如何用FastAPI作为生产者接收原始数据,通过Celery异步任务队列实现去重、校验和存储的分离。使用Redis分布式锁和Bloomfilter解决高并发下的重复问题,并配置Celery的重试机制处理临时故障。架构解耦后,爬虫崩溃不影响清洗,Worker可独立扩容。

阿牛 16
git checkout
用Ollama部署Llama 3,再通过Nginx让全家设备共享离线大模型

#用Ollama部署Llama 3,再通过Nginx让全家设备共享离线大模型

手头那台32G内存、RTX 4090的主机装了Ollama 0.3.10,拉了llama3:8b和70b。手机、MacBook、iPad全跑来要接口。每台设备都pull一遍5GB起步的模型?脑子进水。核心就三点:一台机器扛模型,其他设备当哑终端直连调用。所有prompt和响应全程不离内网。运维从五台设备各自更新缩成只改host服务器上一个systemd进程和Nginx配置。

阿牛 16
AI
git checkout
用Python和FastAPI实现基于令牌桶与滑动窗口的动态API限流中间件

#用Python和FastAPI实现基于令牌桶与滑动窗口的动态API限流中间件

本文介绍如何用Python和FastAPI构建一个支持令牌桶与滑动窗口双算法的动态API限流中间件。通过Redis存储状态,实现多租户独立配置与热更新,解决固定窗口限流在爬虫分发场景下的窗口切换堆积、令牌清空及多租户资源争抢问题。令牌桶提供突发弹性,滑动窗口做兜底熔断,配置可动态调整无需重启服务。

阿牛 25
git checkout
用PHPStan自定义规则,自动揪出Laravel项目中遗漏的try-catch与事务回滚

#用PHPStan自定义规则,自动揪出Laravel项目中遗漏的try-catch与事务回滚

线上订单支付成功但库存没扣减?DBA查到事务卡在中间状态——一个被遗忘的DB::transaction()里,catch块只写了Log::error($e),却漏掉了throw $e或DB::rollBack()。PHPStan默认规则不管这个。本文教你写三个自定义规则:检查空catch/finally、未包裹try的方法、悬空事务。并塞进CI,用基线处理存量代码,彻底杜绝数据不一致。

阿牛 15
PHP
git checkout