Python 芹菜、连锁任务和返回结果

Python 芹菜、连锁任务和返回结果,python,cron,rabbitmq,celery,scheduled-tasks,Python,Cron,Rabbitmq,Celery,Scheduled Tasks,我正试着学习使用芹菜,但我在理解一些东西时遇到了一些困难。 首先,链接任务以及如何在项目的其他地方使用结果(例如通过web套接字发送) 其次,我如何定义什么函数应该是链式任务,或者只是从任务内部调用它 例如: #工人 @芹菜应用程序任务(acks\u late=True) def get_警报(): 运行(模型) @芹菜应用程序任务(acks\u late=True) def计算库存指标(库存:列表): 股票指数为{} 对于库存: 当前任务。更新状态(状态=Actions.STARTED, me

我正试着学习使用芹菜,但我在理解一些东西时遇到了一些困难。 首先,链接任务以及如何在项目的其他地方使用结果(例如通过web套接字发送)

其次,我如何定义什么函数应该是链式任务,或者只是从任务内部调用它

例如:

#工人
@芹菜应用程序任务(acks\u late=True)
def get_警报():
运行(模型)
@芹菜应用程序任务(acks\u late=True)
def计算库存指标(库存:列表):
股票指数为{}
对于库存:
当前任务。更新状态(状态=Actions.STARTED,
meta={f“开始获取{stock}的指标”})
库存指标=获取库存指标(库存)#获取库存最新指标
当前任务。更新状态(状态=Actions.FINISHED,
meta={f{stock}的指标已获取“})
stock_与_指示符。更新({stock:stock_指示符})
返回股票,带有指数
@芹菜应用程序任务(acks\u late=True)
def预测任务(库存:列表):
预测={}
股票指数=计算股票指数(股票)
股票\符号=股票\指标。键()
对于存量指标:
stock_symbol=stock.keys()
当前任务。更新状态(状态=Actions.STARTED,
meta={f“预测{stock_symbol}…”)
库存预测=预测(库存)#将库存发送到预测模型
当前任务。更新状态(状态=Actions.FINISHED,
meta={f{stocks_symbols}的预测已完成..})
update({stock_symbol:stock_prediction})
当前任务。更新状态(状态=Actions.FINISHED,
meta={f“已完成对所有股票的分析”})
回归预测
def chain_任务():
pass#如何正确链接上述任务并将其结果用于其他地方?
#对于此处的exmaple:
@app.websocket(“/ws”)
异步定义websocket_端点(websocket:websocket):
等待websocket.accept()
尽管如此:
data=wait chain_tasks()#使用结果的正确方式是什么?
等待websocket.send_text(f“{data}”)
最后,如果我将它用作crontab的计划任务,我应该调用configartions中的chain_tasks函数吗

芹菜\u app=芹菜(
“工人”,
backend=“redis://:password123@redis:6379/0",
经纪人=”amqp://user:bitnami@rabbitmq:5672/“
)
芹菜_app.conf.task_路线={
“app.app.worker.芹菜\u worker.chain\u任务”:“库存队列”
}
芹菜app.conf.update(task\u track\u started=True)
芹菜\u app.conf.beat\u时间表={
“运行模式”:{
“任务”:“app.app.worker.芹菜\u worker.chain\u tasks”,
#将在每天23:00运行
“时间表”:crontab(分钟=0,小时=23),
},
}