我肯定这个问题以前有人问过,但我找不到。在
我写了一个Python程序,给定一个目录,使用一个非常简单的启发式方法来确定如何“解包”其中的内容以及目标目录。在
每当新的下载完成时,就会执行这个程序。如果很多下载在相同的时间完成,我会得到很多进程同时解包。我想通过重写程序的大部分内容,一次只解包一个目录来解决这个问题。在
为了实现这一点,我想使用一个“lock/PID”文件,其中包含当前正在执行的任何程序的PID。如果lock/PID文件存在,新生成的进程应该简单地按照("queue", "D:/some/directory")
的行向现有进程发送一些内容,并在完成当前解包后让该进程解包该目标。在
如何在Python中实现这一点?这必须在Windows系统上运行,但最好在GNU/Linux上运行。在
如果只想检查PID文件是否存在,可以使用:os.path
既然你已经在使用lockfile by Ben Finney
示例:
您可能希望与正在运行的守护进程通信,您应该让守护进程监听某个套接字,然后从派生的进程向该套接字发送数据。(例如udp套接字)
所以在守护进程中:
^{pr2}$在客户机上:
如果在同一台计算机上运行所有这些,则可以使用“localhost”作为主机名。在
另一方面,使用multiprocess pipes代替套接字可能是正确的方法,但是我还没有使用它们的经验。 此设置的另一个好处是能够在不同的计算机上运行服务器和客户端。在
相关问题 更多 >
编程相关推荐