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