前言
我正在编写一个网络服务器,让用户可以访问一些用 C 编写的程序(我在这个 C 程序上使用 Python 包装器,它是PyCLIPS)。为了服务很多用户,web-server 必须启动这个 C 程序的很多副本,因为一个副本可以同时服务很少的用户,大约 1-3 个用户。此外,每个用户都应该只使用他自己的副本,因此应该有很多 C 程序的副本。
这个 C 程序是一个CLIPS 引擎,如果它有助于理解的话。
所以,为了解决这个设计问题,我想写一个 Twisted TCP 服务器,它就像一个长时间运行的进程池。每个长时间运行的进程都是一个小型 Twisted TCP 服务器,它可以访问 C 程序的一个副本。
例如,用户要求池服务器为他保留一个长时间运行的进程,然后池服务器创建并运行一个开始监听某个端口的长时间运行的进程,然后池服务器返回主机并将这个长期运行的进程移植到用户。现在,用户可以直接与这个长时间运行的进程进行通信。
问题
- 如何从池服务器启动这些长时间运行的进程?池服务器和每个长时间运行的进程应该是单独的 Twisted 服务器。
- Twisted 是实现这些目标的好选择吗?
- 也许还有其他方法可以解决这个设计问题?
非常感谢。