Python 如何在芹菜中回调但不阻塞进程

Python 如何在芹菜中回调但不阻塞进程,python,asynchronous,celery,Python,Asynchronous,Celery,现在我有一些大任务,它们都是由一些小任务组成的,我把它们放到代理中,当一个大任务的所有小任务都完成时,我需要回调来处理这些小任务的结果 我知道芹菜有原始的和弦,只要我有一个大任务,我就能做到,但我有很多 所以,如果我这样写: chord([task11.s(),task12.s()])(mycallback.s()).get() chord([task21.s(),task22.s()])(mycallback.s()).get() 第二条线直到第一条线完工才开始,但这样一来,一些工人会被偶像

现在我有一些大任务,它们都是由一些小任务组成的,我把它们放到代理中,当一个大任务的所有小任务都完成时,我需要回调来处理这些小任务的结果 我知道芹菜有原始的和弦,只要我有一个大任务,我就能做到,但我有很多 所以,如果我这样写:

chord([task11.s(),task12.s()])(mycallback.s()).get()
chord([task21.s(),task22.s()])(mycallback.s()).get()
第二条线直到第一条线完工才开始,但这样一来,一些工人会被偶像崇拜很长一段时间,这是不好的, 那么芹菜中是否有某种方法可以在某些情况发生时回调,但不会阻止进程

==============================================


应用异步工作@Gigapalmer,感谢您的帮助

尝试链接异步方法,这样当一个方法完成时,您可以使用apply_async和所需参数调用链中的下一个方法,从技术上来说,这将创建一个新作业(应该在不同的队列上)。

我不清楚您可以并行化什么和不可以并行化什么。例如,我有一个用户名列表,很多网站,我想检查用户名是否在这些网站中注册,然后使用回调函数对这些结果进行一些统计,现在我可以使用chord来并行每个网站的检查函数,如果我只输入一个用户名,但是有很多用户名,如果我像以前那样编写代码,第二个usersname在第一个usersname完成之前不会启动,但是由于一些网站已经完成了第一个usersname,所以我希望在第二个usersname中使用worker。我刚才用过芹菜,get()是同步的,
apply\u async()
是异步的。