python – 如何在Pylons中启动后台进程?

我正在尝试编写一个应用程序,允许用户启动一个相当长时间运行的进程(5-30秒).然后,它应该允许用户在生成过程时检查过程的输出.只有用户当前会话才需要输出,因此不需要长期存储任何内容.关于如何在利用Pylons框架的同时实现这一点,我有两个问题:

>使用Pylons控制器启动此类后台进程的最佳方法是什么?
>将后台进程的输出返回给用户的最佳方法是什么? (我应该将输出存储在数据库,会话数据等中吗?)

编辑:
问题是如果我在控制器中使用子进程启动命令,控制器在继续之前等待子进程完成,向用户显示刚刚加载的空白页面,直到进程完成.我希望能够在启动子进程后立即将用户重定向到状态页面,允许它自己完成.

最佳答案 我已经通过调用我的第二个进程守护进程来处理这个问题(通过HTTP调用长时间运行的进程).您的Pylons控制器对第二个进程进行系统调用(传递所需的任何数据),第二个进程立即成为一个守护进程.这结束了系统调用,您的控制器可以返回.

我的web应用程序通常会发出AJAX请求以“检查”守护程序进程,直到它完成为止.我已经使用了两个tmp文件(cPickle运行良好)和数据库来共享守护进程和web应用程序之间的信息.

优秀的python守护进程配方:http://code.activestate.com/recipes/278731/

点赞