使用Celery从另一个任务调用任务

2024-04-19 23:11:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我们试图从芹菜中的另一个任务调用一个任务,但第二个任务从未执行。你知道吗

我们尝试使用子任务,但仍然不起作用。你知道吗

celery_application = Celery(
    __name__,
    backend='...',
    broker='...'
)


celery_application.conf.task_routes = {
    'test.*': {'queue': 'test'}
}


@celery_application.task(bind=True, name='test.schedule', ignore_result=True)
def test_schedule_task(task: Task, *args, **kwargs):
    print('RECEIVED: test.schedule')

    celery_application.send_task('test.subtask', [], kwargs={})


@celery_application.task(bind=True, name='test.subtask', ignore_result=True)
def test_subtask_task(task: Task, *args, **kwargs):
    print('RECEIVED: test.subtask')

当我们调用test.schedule时,它工作得很好,但是test.subtask它从不执行。你知道吗

我们如何从另一个任务调用一个任务?你知道吗

注意:在我们的场景中,“子任务”不应该锁定父任务。你知道吗


Tags: nametesttruetaskapplicationbinddefargs