我目前正在使用python flask开发一个数据处理web服务器(linux)。在
一般工作流程为:从用户处获取一个输入文件(由python flask处理)
Flask将这个输入文件传递给java程序
在服务器上保存多个输入文件。在
Flask调用另一个python脚本来处理这些输出,以获得最终结果并将结果返回给客户机。在
问题是:在步骤3和步骤4之间,存在一些中间文件,如果这是一个本地程序,这根本就不是问题。但是作为一个服务器程序,当多个客户端访问该程序时,它们可能会得到由同时使用该web程序的另一个用户提供的输入生成的意外结果。在
在我看来,这是一个关于文件访问的互斥问题。我以前在线程上遇到过互斥问题,我用线程锁解决了一些问题,比如java中的synchronization和pythons中的lock,但是我不确定当涉及到文件而不是线程时该怎么做。在
我突然想到,也许我可以根据不同的客户机生成不同的文件副本。但据我所知,HTTP是无状态的,所以您无法真正知道谁在访问服务器。我不想添加一个登录系统和一个用户数据库来达到这个目的,因为我觉得有一个更简单更好的方法来解决这个问题。在
这几天我一直在寻找一个好的解决办法,但没有找到一个理想的,所以我在这里寻求一些建议。如有任何建议,我们将不胜感激。如果你能提出一个可行的解决方案,请随时提供你的名字,这样我就可以把你添加到关于这个工具的数字和纸质出版物的感谢列表中。在