我有一个需要每隔一段时间运行的多阶段过程。我还有一个控制器程序,它在正确的时间启动流程,将流程的各个阶段链接在一起,并检查每个阶段是否正确执行。控制器访问一个数据库,该数据库存储有关流程过去运行的信息、流程未来执行的参数等。
现在,我想使用 Pyramid 为 Controller 构建一个 Web 界面,以便我可以查看有关进程的信息并影响 Controller 的运行。这意味着 Web 界面中的操作必须影响控制器数据库中的更改。自然,Web 界面将使用与控制器完全相同的数据模型。
控制器和 Web 服务器交互的最佳方式是什么?我考虑了两种可能性:
- 通过在 Pyramid 的初始化例程中调用 sched 来组合控制器和 Web 服务器
- 让 Web 服务器向控制器发送 RPC,例如使用 Pyro。
我应该如何在这里进行?以及在使用第二个选项时如何避免(数据模型的)代码重复?