我正在使用 Celery 和 Django 来管理任务队列,并使用一个(或多个)小型(单核)EC2 实例来处理任务。
我有一些考虑。
- 我的任务在单核上占用了 100% 的 CPU。- 使用任何可用的 CPU,但仅在一个内核中
- 如果 2 个任务在同一个核心上进行,每个任务将减慢一半。
- 我想尽快开始每项任务,不要让它成为问题。
现在说我有 4 个 EC2 实例,我用 "-c 5" 开始 celery。即每个实例 5 个并发任务。
在这个设置中,如果我有 4 个新任务,我想确保它们每个都去不同的实例,而不是 4 个去同一个实例并且每个任务都在争夺 CPU。
同样,如果我有 8 个任务,我希望每个实例一次获得 2 个任务,而不是 2 个实例每个处理 4 个任务。
芹菜是否已经像我描述的那样表现了?如果不是,那么我怎样才能让它表现得如此呢?