【问题标题】:Running a python script in background from a CGI从 CGI 在后台运行 python 脚本
【发布时间】:2012-06-30 04:12:48
【问题描述】:

我有一个 python CGI,它在后台运行一些脚本并在 html 页面中显示标准输出。当用户单击页面中的某个按钮时,我会运行脚本。

我的问题是当脚本开始运行页面变得繁忙并且用户无法使用页面中的其他客户端功能。

我想要的是: 当用户单击按钮时,脚本应在后台运行,并在运行完成时通知 CGI。然后 CGI 显示应该运行脚本的标准输出。

如何做到这一点?

【问题讨论】:

    标签: python cgi backgroundworker


    【解决方案1】:

    嗯,简短的回答:你不能。

    中等答案:CGI 很烂。

    长答案:CGI 通过运行您的脚本并将您的脚本打印到浏览器的任何内容返回来工作。如果您的脚本仍在运行,则浏览器将等待。如果您的脚本启动后台作业并将数据返回给浏览器,则后台作业无法通知 CGI 脚本,因为它已经完成。

    您必须选择替代解决方案。

    将后台作业的结果保存到文件、数据库或其他一些持久性存储中,并让用户使用页面中的另一个链接请求该数据,该链接运行不同的代码来检索保存的结果并显示它们.

    另一种方法是在浏览器中使用 AJAX 技术。编写javascript代码在后台对数据进行请求。因此,当脚本运行时,浏览器仍然可以响应其他页面元素。

    【讨论】:

    • 比诺斯克洛。有没有办法让我的 CGI 在执行脚本时显示加载图标,而不是简单地看起来很忙?
    • @Cagey:这通常是通过使用 javascript 来完成请求 (AJAX)。
    • 感谢您的帮助。这非常有用:)
    猜你喜欢
    • 2011-08-27
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 2010-12-29
    • 2020-03-11
    相关资源
    最近更新 更多