cto
噜啦噜黑
这个作者很懒,什么都没留下…
展开
-
上万耗时任务处理方案-线程池
废话不多说,代码如上。倒序讲下问题由来。原创 2024-03-12 16:40:51 · 413 阅读 · 0 评论 -
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, ‘Lost connection to MySQL ser
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query')原创 2024-03-11 17:26:45 · 1246 阅读 · 0 评论 -
sqlalchemy默认数据库连接池限制导致的服务异常排查
sqlalchemy的连接池默认设置pool_size=5, max_overflow=10。批量添加100个耗时任务,发现有成功执行仅有15个,找到报错log。考虑内存和cpu,合理设置以上2个参数。原创 2024-03-01 17:54:33 · 651 阅读 · 0 评论 -
docker-compose更新单个服务
但日常开发场景更多的是要更新单个服务,比如更新后端服务镜像,而数据库,缓存这些不需要更新。当然docker命令也行,但需要自己配置网络,挂载等,导致命令很长,不方便。docker-compose可以方便快速地一键化部署,这个不展开讲。拆开yml文件,后端服务独立一个。原创 2023-08-15 18:05:22 · 918 阅读 · 0 评论 -
Django迁移文件管理规范
开发中遇到,Django版本不一致导致生成的迁移文件格式差异;研发忘记提交迁移文件;研发随意重命名会导致已执行的迁移文件重复执行,导致迁移失败,容器异常退出等问题,会阻塞协作开发的进度。为避免上述问题,故做此规范。原创 2023-08-15 15:17:59 · 140 阅读 · 0 评论 -
celery实现优先级控制和任务取消
优先级在发起任务时,配置priotiry参数实现。取消需要知道celery的task id。原创 2023-08-02 11:30:44 · 338 阅读 · 0 评论 -
Django UT
请求一定要使用from django.test import Client,否则测试数据会污染正式的数据库。Client设置hearder传参,很个性化,比如像设置header的Authorization。必须传HTTP_AUTHORIZATION=xxx。本质上是继承UnitTest实现,可轻松实现。case中的test_*方法执行是无序的。有以下几点需要特别注意。原创 2023-07-06 16:47:14 · 93 阅读 · 0 评论 -
配置加载方案
一般是和环境绑定的,即同一环境下不会变更,比如Nginx地址。需要热加载的,一般和业务相关,比如胎脑检测报告中必须的字段。所有配置数据,都需要在配置文件中写上兜底数据。避免配置硬编码和个人/测试环境配置误提交。原创 2023-07-28 11:07:50 · 120 阅读 · 1 评论