自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 MySQL数据库死锁问题处理

MySQL元数据锁问题分析与解决方法摘要:在执行ALTER TABLE或DROP TABLE操作时,可能遇到"Waiting for table metadata lock"错误或操作长时间挂起。这通常由元数据锁冲突、空闲事务或并发操作导致死锁引起。可通过SHOW PROCESSLIST和information_schema.innodb_trx诊断问题,识别并终止阻塞查询和空闲事务(使用KILL命令)。清理锁后再执行原操作,若无效可考虑重启MySQL服务。该问题主要源于多个事务对表元数据的并发访问冲突

2025-07-15 13:12:24 232

原创 FastAPI中的后台任务,在阿里云的函数计算环境中不工作!

阿里云函数计算与FastAPI后台任务存在机制冲突:函数计算的请求结束即环境回收特性导致FastAPI在响应返回后无法继续执行后台任务。解决方法是通过阿里云异步调用机制(x-fc-invocation-type:Async)替代BackgroundTasks,让请求立即返回而实际处理在后台进行。这既满足了Serverless环境的限制,又实现了异步处理的需求。

2025-07-03 20:21:48 385

原创 阿里云的函数计算FC中出现了无效状态怎么解决?

摘要:作者首次使用阿里云函数计算服务时,遇到两个问题:一是FastAPI后台任务未执行,二是更新镜像后出现"无效状态"。经排查发现,前者需额外配置(详见另一篇笔记),后者是因更新镜像后未重新部署函数,导致旧版本镜像失效。解决方案是重新部署函数:在函数列表进入目标函数,修改镜像并点击部署即可。该问题源于阿里云函数计算会锁定特定镜像版本,更新后需手动重新部署。

2025-07-03 19:56:22 148

原创 Git常用命令

【代码】Git常用命令。

2025-06-24 16:37:01 114

原创 调用FastAPI接口时加了个额外参数,竟然也成功了!

当FastAPI接口只定义了task_id参数,但请求中包含了task_id和其他额外参数时,接口并没有报错而是正常处理了请求。配置后,当请求包含未定义的额外参数时,FastAPI会返回422状态码(Unprocessable Entity)错误。FastAPI默认情况下会忽略请求中未在接口定义中声明的额外参数。这是一种宽容的设计,允许API兼容不同版本的客户端。

2025-06-19 12:14:37 156

原创 关于同步接口中的异步处理机制设计

在分析视频处理服务(vid_sync_engine)项目时,我注意到一个有趣的设计特点:虽然API接口实现是同步的,但代码结构已经为未来的异步处理做了准备。在视频处理这类耗时操作中,同步处理会导致客户端长时间等待,而异步处理则能提供更好的用户体验。但如何在现有同步接口基础上平滑过渡到异步模式?这种"同步接口+异步处理预留"的设计模式,展示了如何在满足当前需求的同时为未来扩展留下空间,是一种值得学习的软件设计思想。在这种实现中,客户端发送请求后必须等待整个视频处理完成才能收到响应,可能需要等待数分钟。

2025-06-14 13:20:21 384

原创 关于poetry的使用

Poetry 是一个现代化的 Python 项目依赖管理工具,提供了依赖解析、虚拟环境管理、包构建和发布等功能。它使用 pyproject.toml 和 poetry.lock 文件来管理项目配置和依赖。确保在包含 pyproject.toml 的目录中运行 Poetry 命令,或使用 poetry init 创建新的配置文件。

2025-06-14 12:11:16 465

原创 Python 依赖管理:requirements.txt VS Poetry

随着Python项目复杂度增加,Poetry提供的依赖解析、环境管理和工作流自动化优势会越来越明显,但requirements.txt在简单性和普适性方面仍有其价值。

2025-06-13 19:58:00 923

原创 关于同步与异步通信模式

接口本身没有固有的同步/异步属性,而是由其设计和使用方式决定同步/异步可以在多个层面实现:代码层面(如Python的asyncio)接口设计层面(如使用回调或轮询)平台层面(如阿里云Function Compute的异步调用)不同层面的异步可以组合使用,以获得最佳性能和用户体验云服务平台提供的异步机制可以让我们不修改接口本身的情况下,实现异步调用体验正确处理异步响应需要考虑不同的状态码和错误情况。

2025-06-13 19:34:08 934

原创 什么是依赖包?

依赖包是项目运行或开发时所需的第三方代码资源,由其他开发者编写并发布,通常通过包管理工具安装(如Python的pip、Node.js的npm等)。它们能复用代码、加速开发并确保环境一致性。不同语言中依赖包名称各异(如Python称"库"、Java称"依赖"),但本质相同:项目需要的外部代码组件。依赖关系会记录在特定文件(如requirements.txt、package.json)中,通过工具统一管理。

2025-06-13 14:02:21 340

原创 软件类型与包管理工具:从Python开发视角理解

Python开发中安装依赖需区分软件类型:FFmpeg等系统级工具软件需通过系统包管理器(如apt、brew)安装,而Python包(如numpy)则通过pip/Poetry安装。两类软件在设计理念和运行方式上存在本质差异——系统软件是底层工具,Python包是解释器内的功能模块。理解这种区别有助于正确管理项目依赖,构建可靠的开发环境。这种认知突显了开发中区分"工具"与"应用"的重要性。

2025-06-11 17:22:21 313

原创 Dockerfile 与 Docker Compose 的区别

Dockerfile和DockerCompose是容器化开发的核心工具,各有侧重。Dockerfile专注于单个容器镜像的构建,提供从基础镜像到应用的完整指令;DockerCompose则用于编排多容器应用,定义服务间的连接与依赖关系。前者适用于标准化构建流程,后者适合本地开发和测试环境。二者通常配合使用:用Dockerfile构建镜像,再用DockerCompose运行完整应用。随着项目复杂度提升,开发会从Compose转向Kubernetes等编排工具,但Dockerfile始终是容器化的基础。理解二者

2025-05-30 13:01:41 1086

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除