坑
噜啦噜黑
这个作者很懒,什么都没留下…
展开
-
python函数参数默认值为可变对象(例如{},[]等)的坑
然而,当将可变对象作为默认参数时,需要注意到这个默认对象在函数调用过程中是共享的,这可能导致一些意外的行为。:如果在多个地方使用了同一个函数,并且使用了默认参数,那么这些地方都将共享同一个默认参数对象。如果在其中一个地方修改了默认参数,可能会影响到其他地方。:如果在函数内部修改了默认参数,这些修改会影响到后续函数调用中使用了默认参数的地方。为了避免这些潜在的问题,可以使用不可变对象作为默认参数,或者在函数内部创建一个新的可变对象。,并且在函数内部对它进行了修改,那么这些修改会在之后的函数调用中持续存在。原创 2024-04-08 11:37:49 · 289 阅读 · 0 评论 -
上万耗时任务处理方案-线程池
废话不多说,代码如上。倒序讲下问题由来。原创 2024-03-12 16:40:51 · 390 阅读 · 0 评论 -
处理异常sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1038, ‘Out of sort memory
前端查询列表页一直转圈圈,打开控制台发现是API 500了。看了下后端日志,核心问题是。前端试了下还是转圈,API依然500,又看了下后端日志,原来是mysql连接断开。修改mysql容器的配置。手动重启后端服务即可。原创 2024-02-05 14:12:21 · 476 阅读 · 0 评论 -
docker中python3.10.5的subprocess.run子进程运行可执行文件报FileNotFoundError
执行subprocess.run(['./xray_linux_amd64', 'webscan', '--basic-crawler', f'{url}', '--json-output', f'./reports/xray-{target_id}.json'], cwd=XRAY_PATH)手动执行下,找到这个文件,居然还报这个错,不可思议,瞪眼说瞎话。不是的,看了下源码问题不在这,所以这个报错很有误导性!原来是坑爹的精简版系统引发的奇怪报错!然并卵,还是一样的报错!运行,然后果然成功!原创 2024-01-22 17:56:13 · 687 阅读 · 0 评论 -
fastapi后台任务中使用多线程调用数据库session报错
望着代码陷入自我怀疑,再三确认了多线程的代码没问题,想起来如题的坑,于是在子线程的函数中加入try catch,通过logging主动捕获并打印出异常。批量耗时任务创建的api,最开始采用for循环串行执行耗时任务,使用的是请求初始化时的数据库session,技术上没问题。于是修改子线程函数,增加参数,接受一个新创建的会话。上来直接改造多线程,发现子线程很快stoped,根本没执行。但业务上需要优化成并发。终于,世界恢复平静!原创 2024-01-19 16:37:41 · 577 阅读 · 1 评论 -
Django迁移文件管理规范
开发中遇到,Django版本不一致导致生成的迁移文件格式差异;研发忘记提交迁移文件;研发随意重命名会导致已执行的迁移文件重复执行,导致迁移失败,容器异常退出等问题,会阻塞协作开发的进度。为避免上述问题,故做此规范。原创 2023-08-15 15:17:59 · 120 阅读 · 0 评论 -
Django has_perm仅能判断调用那一刻的权限信息
【代码】Django has_perm仅能判断调用那一刻的权限信息。原创 2023-07-13 17:37:46 · 116 阅读 · 0 评论