这样的应用程序的各种设计可能与pysnmp,都是基于CommandResponder类。也许最简单的方法是create your own MibInstrumentationController class将接收同步GET/SET/GETNEXT查询,并有望恢复响应变量绑定:
class EchoMibInstrumController(instrum.AbstractMibInstrumController):
def readVars(self, vars, acInfo=(None, None)):
return vars
def readNextVars(self, vars, acInfo=(None, None)):
return vars
def writeVars(self, vars, acInfo=(None, None)):
return vars
另一种解决办法是编译MIB到pysnmp格式(与PySMI编译器)和specialize MIB variables(AKA管理对象实例),这样他们会通过某种协议,谈谈你的后端数据存储(程序)。
但是,两种方法都是同步工作的,这意味着您将阻止SNMP引擎,直到您从后端检索数据并从请求处理函数返回。如果您希望在高的并发负载和/或慢数据存储,您可能需要使用的异步运行CommandResponder类的低级别API。
也可以通过在SNMP消息处理代码的重要位置放置钩子集合tap on SNMP engine workflow。但该功能主要是为了从SNMP引擎内部获取非常具体的数据,而不是指导其操作。
还有......是什么问题?见http://stackoverflow.com/help/how-to-ask – kebs
对不起,我忘了最重要的部分 –