在python中创建控制器进程的web界面

在python中创建控制器进程的web界面,python,scheduling,pyramid,Python,Scheduling,Pyramid,我有一个多阶段的过程,需要每隔一段时间运行。 我还有一个控制器程序,它在正确的时间启动流程,将流程的各个阶段链接在一起,并检查每个阶段是否正确执行。 控制器访问一个数据库,该数据库存储有关进程过去运行的信息、进程未来执行的参数等 现在,我想使用Pyramid构建控制器的web界面,以便查看有关进程的信息并影响控制器的操作。 这意味着web界面中的操作必须影响控制器数据库中的更改。 当然,web界面将使用与控制器完全相同的数据模型 控制器和Web服务器交互的最佳方式是什么? 我考虑了两种可能性:

我有一个多阶段的过程,需要每隔一段时间运行。 我还有一个控制器程序,它在正确的时间启动流程,将流程的各个阶段链接在一起,并检查每个阶段是否正确执行。 控制器访问一个数据库,该数据库存储有关进程过去运行的信息、进程未来执行的参数等

现在,我想使用Pyramid构建控制器的web界面,以便查看有关进程的信息并影响控制器的操作。 这意味着web界面中的操作必须影响控制器数据库中的更改。 当然,web界面将使用与控制器完全相同的数据模型

控制器和Web服务器交互的最佳方式是什么? 我考虑了两种可能性:

通过在Pyramid的初始化例程中调用sched来组合控制器和web服务器 让web服务器向控制器制作RPC,例如使用Pyro。
我应该如何继续?当使用第二个选项时,我如何避免数据模型的代码重复?

我将避免在与web应用程序相同的过程中运行控制器-例如,使用较低的权限运行web应用程序是一种常见做法;在某些多线程/多进程环境中,可能会产生多个工作线程,然后在需要时杀死/回收它们。因此,让控制器在具有某种RPC机制的单独进程中运行似乎是一个更好的主意

关于代码复制-有两个选项:

您可以将公共代码模型提取到两个应用程序都使用的单独模块/egg中

如果您发现需要共享大量代码,那么没有任何东西会强迫您为这些应用程序创建单独的项目。您可以有一个带有两个或多个入口点的代码库,其中一个将启动Pyramid WSGI应用程序,另一个将启动控制器进程


谢谢你的帮助,谢尔盖。