1
ljcarsenal 2015-06-10 11:25:35 +08:00
celery好像可以吧
|
2
clino 2015-06-10 11:27:17 +08:00
标准库里的subprocess吗?
如果是这个的话,你不调用wait()的话是不阻塞的吧 "请问怎么实现,在点击部署后不等待,然后待部署好再获取返回值提示部署成功" 最简单的是前端javascript轮询,直到后端返回执行完的结果再在页面上提示 |
3
bertram 2015-06-10 11:31:41 +08:00
做一个回调,执行完将结果返回到回调地址。
|
4
huson OP @ljcarsenal 谢谢,就去看
@clino 是标准库的subprocess,我直接在flask里面的调用的外部class,class就是用subprocess执行shell(ansible命令) 然后返回false or true,然后继续执行页面,代码类似下面 result = deploy(ip).start() #调用外部class 部署 if result ==True: return render_template('sucessful.html') 然后页面会转很久等待执行完 才会跳转 |
6
clino 2015-06-10 11:56:28 +08:00
|
7
billlee 2015-06-10 13:00:50 +08:00
你需要用 ajax.
|
9
aec4d 2015-06-10 13:05:52 +08:00
http://blog.miguelgrinberg.com/post/using-celery-with-flask 看这个你就明白了 用celery做任务队列 保存结果 然后ajax轮询请求结果
|