gpt4 book ai didi

python - Django 中的 Fabric。如何解决等待 SSH 完成的 View

转载 作者:行者123 更新时间:2023-11-28 17:30:42 26 4
gpt4 key购买 nike

我有一个简单的看法:

def test(request):
os.system('fab remote_uname -i /path/to/keyfile -H hostname')
return HttpResposnse('Complete')

fabfile.py 中:

from fabric.api import *
env.user='ubuntu'
def remote_uname():
run('uname -a')

当我点击 url 时,它会等待很长时间才能提供响应。这可能会使用户感到困惑,无法再次执行 remote_uname() 刷新。我如何传递 View 并让操作稍后完成?在这种情况下如何实现并发?

最佳答案

线程/进程并发可能需要节流

您有多种选择,例如线程/进程级别的并发,例如使用 Python 的 multiprocessing模块。但是走这条路我担心你可能会产生比你的硬件可以处理的更多的线程/进程,除非你限制你的 Django View 或其他东西来限制速率。

它完成工作,非常简单,您的 View 将立即返回,但您有重载的风险,并且您手动管理结果和错误。

任务队列

否则,您可以将其实现为排队任务,例如 Celery * 例如,这会将任务排队,一个接一个地运行它们,或者以您设置的并发级别运行它们。另一个优点是成功时的结果,失败会被记录下来,因此您可以根据需要将它们返回给用户。

* 像 Celery 这样的任务队列设置起来可能看起来很复杂,但实际上并不复杂,而且在 Django 中也有可靠的支持。

关于python - Django 中的 Fabric。如何解决等待 SSH 完成的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34542679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com