所以我有一个后台程序,我需要公开/控制作为一个Web服务。我已经封装了进程以便能够通过管道接受命令,但现在我正试图找出如何控制它。Python:DJango如何拥有一个长期运行的过程?
要求如下:
- 需要能够通过网络启动进程
- 需要能够发送CMDS
- 需要能够从CMDS 返回结果
- 过程一旦开始活着直到死亡
我认为主要问题是如何让django拥有这个过程?从某种意义上说,保留一个有效的保存管道以供将来与后台进程通信。现在,它的东西沿着线(只是一个例子):
if __name__ == '__main__':
to_process_pipe, process_pipe = Pipe()
node = PFacade(process_pipe)
p.start()
to_process_pipe.send(['connect'])
print to_process_pipe.recv()
p.killed = True
p.join()
我想我需要一个更好的办法是能够沟通,BC我不知道我怎么会在管道储存在Django。
如果您打算使用芹菜回答,请给我一个很好的解释。
你从不想让Django拥有它,因为你不一定知道你将运行多少个Django进程。 – 2011-03-24 13:04:39
是的,我正在用芹菜Queue替换管道,只是不知道是否有更好的方法。 – Nix 2011-03-24 13:07:04