【发布时间】:2010-10-01 19:21:01
【问题描述】:
我正在构建一个 Web 应用程序,它将处理(填充、混合、合并等)声音文件,我发现 sox 完全符合我的要求。 Sox 是一个 linux 命令行程序,我对让 python web 应用程序根据每个请求在我的服务器上启动新的 sox 进程感到有点不舒服。
例子:
import os
os.system('sox input.wav -b 24 output.aiff rate -v -L -b 90 48k')
整个设置对我来说似乎有点不稳定。
所以我的问题是,从 python(或任何脚本语言)网络应用程序中运行命令行程序的最佳做法是什么?
消息队列是为了绕过整个请求响应周期而实施的一件事。但是还有其他方法可以让这些东西更优雅吗?
【问题讨论】:
-
> 我感觉有点不舒服 > 有 python 网络应用程序 > 在我的服务器上启动新的 sox 进程 > 根据每个请求。对我来说,这似乎意味着他担心,如果他向公众开放他的网络服务器,如果 15.000 人决定点击那个将启动 sox 的按钮,他将无能为力来防止他的服务器资源被消耗。以这种方式。
-
@Thomas。在这种情况下,我看不出“网络”如何改变任何东西。你能解释一下为什么“web”在运行子进程时很重要吗?
-
@S.Lott OP 表达了对基于每个请求启动子进程的关注。因此,这不仅涉及启动子流程,还涉及例如关于限制他们的总数。
-
@ThomasH:“限制他们的总数”?看起来更像是一个网站的请求响应很快,但这个子过程可能很慢。很难说。我不明白其他参考文献是如何不相关的。
标签: python command-line