当单元测试时,我CELERY_ALWAYS_EAGER
设置为 True
,导致任务在本地执行而不是发送到队列。
但是,我需要在测试时限制任务执行的速率,我想获得有关如何执行此操作的建议。
想要速率限制的原因(理想情况下它反映了项目关于限制的芹菜配置)是因为我要连接到速率限制的服务,并希望确保我的任务不超过上述限制,原因有两个:
- 作为速率限制的测试
- 并能够在其他单元测试中使用速率限制服务
如果第二点看起来很糟糕,因为服务在运行测试时可能会关闭,从而给出误导性的结果,那么我也可以感谢避免这种情况的建议。
我建议嘲笑外部服务。您可以在模拟代码中实现速率限制。
这似乎是关于这种方法的一个很好的教程。