我正在计划在python3中使用一个应用程序,该应用程序使用三个文本文件或三个数据库表,不确定该使用什么。这些文件只由字符串组成,或者由数据库表中的一列组成,每行中都有一个字符串
该应用程序有三个程序program_A、program_B、program_C,它们处理这三个文件,file_A和file_B以及file_C。程序A读取/写入file_A读取file_C并写入file_B,program_B读取/写入file_B,program_C写入file_A和file_C,文件_A和文件_B只是假想的队列,因此程序从文件中读取一行,然后从文件中删除该行,(因此我提到了读/写),一个写文件的程序在文件末尾写一行
我不确定如何让这些程序工作,因为这些程序同时访问文件。我已经研究过sqlite文件锁定状态,我不知道如何使用它来解决我的场景。我也不确定我应该使用sqlite数据库还是简单的文本文件
我也在考虑使用某种共享内存,或者内存数据库,在那里我可以在应用程序启动时加载这些文件的内容,并在应用程序退出时写回这些文件,但我担心软件硬件故障是否意味着我会失去在应用程序运行时所做的工作,因为这些文件没有因为故障而更新。
在同一个文件中读取和写入?不,这只会带来痛苦。您可以尝试线程或多处理机制来共享数据,并有一个符合您需求的queue
实现。
sqlite方法似乎也很好,因为您可以添加必要的数据来设置这些"队列"的顺序等等,但我不喜欢通过数据库进行通信的进程。