多个使用者和单个数据源的设计模式

时间:2010-09-03 21:12:36

标签: python design-patterns architecture rpc cherrypy

我正在为某个提供自己的自定义API的硬件设备设计一个Web界面。所述web界面可以一次管理多个设备。通过使用自定义API进行轮询,可以从设备中检索数据,因此最好使其异步。

最明显的事情是有一个轮询数据的轮询线程,保存到具有信号量的进程范围的单例中,然后Web服务器线程将从所述单例中检索数据并显示它。我不是单身人士或混合设计的忠实粉丝,所以我想可能将轮询器数据源与Web服务器分离,将其循环回本地接口并使用XML-RPC等消耗数据。

应用程序不一定是'enterprisey'或可扩展的,因为它一次最多只能由几个人访问,但我宁愿通过不将两种逻辑混合在一起来使其健壮。在使用CherryPy的python中有一个当前的实现,它是我见过的最糟糕的糟糕设计混搭。我觉得如果我选择最明显的设计,我最终会以自己的方式重新实现同样可怕的事情。

1 个答案:

答案 0 :(得分:4)

如果使用Djangocelery,则可以创建一个Django项目作为Web界面和芹菜作业,以便在后台运行并进行轮询。在这项工作中,您可以导入Django模型,这样可以非常简单地保存轮询结果。