在芹菜Python中,将任务输出到并行处理系统

2024-10-03 00:32:23 发布

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

我已经创建了一个任务

@app.task
def mainTask(msg,nc):
    decryptFunction.decryptFunc(msg)
    if len(decryptFunction.messageJson):

我正在异步接收数据。你知道吗

def on_message(client, userdata, msg):
    result = mainTask.delay(msg.payload.decode("utf-8"),1)

我需要使用输出解密函数.messageJson在5个任务中同时运行


Tags: clientappmessagetasklenifondef
1条回答
网友
1楼 · 发布于 2024-10-03 00:32:23

我从您的需求中了解到的是,我建议您可以从mainTask调用其他5个任务作为celery任务,而不是使mainTask异步,即

def mainTask(msg, nc):
     decryptFunction.decryptFunc(msg)
     if len(decryptFunction.messageJson):
         response1 = task1.delay(decryptFunction.messageJson)
         response2 = task2.delay(decryptFunction.messageJson)
         response3 = task3.delay(decryptFunction.messageJson)
         response4 = task4.delay(decryptFunction.messageJson)
         response5 = task5.delay(decryptFunction.messageJson)

你的on_message功能如下:

def on_message(client, userdata, msg):
    result = mainTask(msg.payload.decode("utf-8"),1)

但这是假设其他5个任务是互斥的,其中一个任务的响应不会影响另一个任务,因为如果它们不是互斥的,则不能使它们成为异步任务。你知道吗

但是如果你的mainTask很费时,你可以把它当作Celery任务。你知道吗

相关问题 更多 >