如何在Django中处理环境变量和并发性

时间:2014-05-30 12:30:57

标签: python django environment-variables

我正在开发一个使用其他软件进行处理的Web应用程序(使用Django)。该软件需要将其工作目录设置为环境变量。当客户端发出请求时,应用程序会创建工作目录(创建要由外部软件使用的数据)。然后将外部软件使用的环境变量设置为创建的目录。最后,我们调用外部软件并获得结果。

以下是该应用正在执行的操作的摘要:

def request(data):
    path = create_working_directory(data)
    os.environ['WORKING_DIRECTORY'] = path
    result = call_the_external_software()

我还没有对此进行测试(实际上它并不像本例中那么简单)。我想在新的过程中执行这个功能。当多个客户端同时发出请求时,我会遇到问题吗?如果是,我该怎么做才能解决问题?

ps:我无法改变外部程序的任何内容。

1 个答案:

答案 0 :(得分:0)

https://docs.python.org/2/library/subprocess.html#subprocess.Popen。请注意,Popen需要一个" env"您可以用来在子调用中定义环境变量的参数。

def request(data):
    path = create_working_directory(data)
    env = {"WORKING_DIRECTORY": path}
    result = subprocess.call([ext_script] + ext_args, env=env)
    return result # presumably