前沿:

        那么以前都是调取一个url的接口,把结果post过去,web服务器接收到请求,会给所有链接到websocket server的客户端send数据。那么问题来了,这总是频繁的调用url,然后再send,觉得有些多此一举,还不如用python websocket client直接链接到websocket server上来,那么既然都连接在一块了,互相交互也就方便的多。

虽然爬虫爬了我的网站,但是大家别忘了我的原站   ,  blog.xiaorui.cc

2014版本的saltstack出来了一个叫做 event 事件的东西,那么问题来了,event是什么?  

我也不长篇大论了,他是为saltstack提供了一个事件机制,咱们通过saltstack做的一些实例操作,在event可以体现出来。比如,调用test.ping 、 cmd.run的时候,会发现在event上可以看到我们在操作的动作。 


最明显的log是,创建任务,然后找jid的结果,没有的话,再循环的查训,知道你配置了timeout为止。

跑一下,结果如下


在这里也可以琢磨出来他获取结果的思路:

创建一个任务及jid,然后每次去看看刚才(sleep 30;ip a ) 的结果,每隔五秒轮寻一次结果。每次去saltutil.find_job的jid是相同的,不同的是saltutil.find_job他本身的任务号。


对于websocket把结果打到前端,咱们就直接用websocket客户端搞~

websocket模块的地址在,https://github.com/liris/websocket-client.git

下面是用python实现的websocket的客户端。

话说event和websocket的逻辑有些乱,可以预先把任务的jid放到list里面,然后每次去遍历数据,send到前端。具体的实现代码我就不详细写了,我上面已经说了event的用法,相信大家也明白。 


讲的不多,同样写的也很是泛泛,大家图个Happy就好了 ~



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品