【发布时间】:2016-10-30 12:50:53
【问题描述】:
好的,我认为我有一个相对简单的问题,就像我正在用它撞砖墙。我有一个烧瓶应用程序和一个网页,允许您使用 celery 和 redis(broker) 在服务器端运行许多脚本。
我想做的就是当我开始一个任务时给它一个名字/ID(任务将被描绘成客户端的一个按钮),即
@app.route('/start_upgrade/<task_name>')
def start_upgrade(task_name):
example_task.delay(1, 2, task_name=task_name)
然后在任务开始后,我想看看任务是否在单独的请求中运行/等待/完成,最好像;
@app.route('/check_upgrade_status/<task_name>')
def get_task_status(task_name):
task = celery.get_task_by_name(task_name)
task_state = task.state
return task_state # pseudocode
但我在文档中找不到类似的内容。我对芹菜很陌生,尽管仅供参考,所以假设我什么都不知道。另外为了更加明显,我需要能够从 python 查询任务状态,请不要使用 CLI 命令。
也欢迎任何实现我查询队列目标的替代方法。
【问题讨论】:
标签: python redis celery celery-task