我正在考虑在项目中使用Celery在服务器上排队科学计算任务。大多数情况下,任务将是单线程,单处理器任务,但我们通常使用的几个包可以作为一个参数使用多个线程。因此,我们可以在创建任务时提前指定并发性。
我想配置Celery,以便工作人员可以考虑他们的并发性和任务所需的线程数。例如,如果一个worker具有并发性10,并且它需要一个需要并发性的任务6,那么该worker将知道它只剩下“capacity”4来承担其他任务。此外,如果一个worker的并发度超过6,那么它只会尝试执行此任务。
有一个很好的干净方法吗?是不是有一种不那么好又脏的方法呢?