由于复杂的回调/链接设置,我们的基础架构中的某些任务似乎将排队,但未分配给它们。所以我想编写自动化测试以确保芹菜任务被发送到指定由其处理的队列。
设置示例:
from celery import Celery
celery = Celery()
@celery.task(base=MyTask, queue='mytasks.add')
def add(x, y):
a = x + y
return a
@celery.task(base=MyTask, queue='mytasks.dadd')
def double_add(a, y):
b = a + y
def caller(x, y):
add.apply_async(args=(2, 1), kwargs={''callback': double_add.subtask(args=(3)) })
所以这里“add”应该由queue ='mytasks.add'处理,而“double_add”应该由queue ='mytasks.dadd'处理
我理解芹菜的基本结果测试,如下所示:How do you unit test a Celery task?
但我很感激对上述情况的测试过程的任何见解。