每个用户的芹菜周期任务



我正在研究一个主要未来将为每个用户定期运行一种异步任务的项目。每个用户都可以配置任务(在指定时间每天、每周等运行)。此外,任务将使用用户存储的一些数据。现在我想知道哪种方法应该更好:允许用户创建自己的 PeriodicTask(当然通过使用一些受限制的端点)或创建单个 PeriodicTask(例如每 5 分钟运行一次),这将遍历所有用户并确定任务是否应该为当前用户排队?我想我会使用 AMPQ 作为经纪人。

Celery 中的定期任务调度器并非旨在处理数千个计划任务,因此从性能的角度来看,更好的解决方案是让一个任务以最小的间隔运行(例如,如果您允许用户每天、每周、每月调度 - 每天运行任务就足够了)

这种方法也更稳定 - 每次计划更改时,都会重新加载所有计划记录

Plus 更安全,因为您不会公开或使用任何内部机制来执行任务

最新更新