前端之家收集整理的这篇文章主要介绍了
supervisor(三)xml_rpc,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
supervisor提供的两种管理方式,supervisorctl和web其实都是通过xml_rpc来实现的。
xml_rpc其实就是本地可以去调用远端的函数方法,然后函数方法经过一番处理后,把结果返回给我们。
xml_rpc不懂的同学建议去百度百度它的原理机制。这个比较简单,楼主也是上午刚搞懂。
在python里面实现xml_rpc就更加的简单,用SimpleXMLRPCServer和xmlrpclib这两个模块就可以分别实现服务端和客户端了。
调用supervisor的xml_rpc接口,其实很简单。先做好下面这两步
1
2
|
import
xmlrpclib
p
=
xmlrpclib.Server(
'http://localhost:9001/RPC2'
)
|
注意xmlrpclib.Server()里面的url和咱们supervisor.conf里的配置是相关的
做完上面的步骤,我们就可以得到一个叫做p的对象。p这个对象,有很多存放在服务端的方法。
supervisor默认的xml_rpc方法定义在下面这个路径里面
1
/usr/local/lib/python2
.7
/dist-packages/supervisor-3
.1.0-py2.7.egg
/supervisor/rpcinterface
.py
|
2
>>>server.system.listMethods()
[
'supervisor.addProcessGroup'
,
'supervisor.clearAllProcessLogs'
'supervisor.clearLog'
'supervisor.clearProcessLog'
'supervisor.clearProcessLogs'
'supervisor.getAPIVersion'
'supervisor.getAllConfigInfo'
'supervisor.getAllProcessInfo'
'supervisor.getIdentification'
'supervisor.getPID'
'supervisor.getProcessInfo'
'supervisor.getState'
'supervisor.getSupervisorVersion'
'supervisor.getVersion'
'supervisor.readLog'
'supervisor.readMainLog'
'supervisor.readProcessLog'
'supervisor.readProcessStderrLog'
'supervisor.readProcessStdoutLog'
'supervisor.reloadConfig'
'supervisor.removeProcessGroup'
'supervisor.restart'
'supervisor.sendProcessStdin'
'supervisor.sendRemoteCommEvent'
'supervisor.shutdown'
'supervisor.startAllProcesses'
'supervisor.startProcess'
'supervisor.startProcessGroup'
'supervisor.stopAllProcesses'
'supervisor.stopProcess'
'supervisor.stopProcessGroup'
'supervisor.tailProcessLog'
'supervisor.tailProcessStderrLog'
'supervisor.tailProcessStdoutLog'
'system.listMethods'
'system.methodHelp'
'system.methodSignature'
'system.multicall'
]
|