python - 如果 celery 代理没有运行,Django 测试会随机冻结
问题描述
问题
在本地运行单元测试时,在某个时间点,它完全冻结,我不明白出了什么问题。即使我使用最大详细-v3
选项运行测试,我也不知道。
我认为这与测试本身无关,因为它们曾经通过,或者仍然通过 CI。另外,它并不总是在同一阶段冻结。
我用什么
- Docker for mac 2.2.0.3
- 在 MacOS 10.15.3 上
- 带有 PostgreSQL 官方镜像 (10.12)
- 心理战 2.7.7
我试过的
- 我试图用 Docker 在另一台计算机上运行测试
- 我试图评论冻结的测试,但它会在其他地方冻结
- 我试图在本地更改 PostgreSQL 版本
- 我尝试使用其他选项运行测试,例如
--reverse
或--parallel
任何想法?如何调试这个?
解决方案
好吧,我觉得很愚蠢,但它可以帮助一些人......
-> 如果您使用的是 Celery,并且您的测试使用delay()
方法调用了一些任务,请确保您的代理服务器正在运行(在我的情况下,我使用 Redis)。如果没有,它将冻结代码中的任何内容,因为当 redis 客户端尝试连接到服务器时似乎没有超时。
推荐阅读
- sql - 具有多个条件的系列创建
- rust - Rust 将宏用于长 Trait 约束链
- php - 多选框将数据库值保持为选定 Laravel 5.8
- javascript - 如何以角度反应形式设置按钮文本
- django - 错误:变量 DJANGO_SETTINGS_MODULE 或在访问设置之前调用 settings.configure()。?
- php - Laravel \URL::to('/') 无法自动检测 HTTP 或 HTTPS
- c - 有什么办法可以将程序文件中的代码和注释分开
- google-cloud-platform - 使用 Google Cloud Vision 光学字符识别 (OCR) 进行同步转录
- python - python如何将每一行写成一个文件
- ruby - 不带参数的函数组合:参数数量错误(给定 1,预期为 0)