Python 在其他任务中创建的芹菜计划任务不会立即转到代理

Python 在其他任务中创建的芹菜计划任务不会立即转到代理,python,multithreading,celery,celerybeat,preforking,Python,Multithreading,Celery,Celerybeat,Preforking,我的芹菜任务设置如下: @celeryapp.task def heavy_task(x, y): # some stuff for _ in range(10000): heavy_task_2.apply_async(args=(x,y), countdown=random.randint(60,120)) return x+y @celeryapp.task def heavy_ta

我的芹菜任务设置如下:

@celeryapp.task
def heavy_task(x, y):
    # some stuff
    for _ in range(10000):
        heavy_task_2.apply_async(args=(x,y),
                                 countdown=random.randint(60,120))
    return x+y

@celeryapp.task
def heavy_task_2(x, y):
    # some stuff
    return x+y
我有5个worker(prefork),每个worker有30个并发性。所有运行时,预取_乘数=1且-Ofair参数。我正在使用redis broker和芹菜\u ACKS\u LATE=True

现在,我将heavy_task(1,2).delay()从芹菜节拍计划中调用,任务将分配给任何一个工作者,然后它创建的所有10000个任务都只由该工作者完成,而不会发布给代理,以便其他工作者可以处理这些任务。工人的预回迁计数持续增加到10000

只有在原始工作进程中的内存开始消耗接近90%之后,这些任务才会发布到代理,从而转移到其他工作进程。有时工人也会被操作系统杀死,所以我的任务将永远丢失,因为它们在redis代理中不是“未确认的”

我应该怎么做才能使这些次要任务立即转到代理,而不会让一个工人承担所有任务的负担