我创建了一个任务
@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)
我需要在5个任务中使用输出decryptrunction.messagejson并同时运行
我建议我从您的要求中理解的内容,而不是将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
任务。