您好,登录后才能下订单哦!
针对前面两篇博客的续写,主体的都写的差不多了,但是实际真正的功能并没有写。功能按钮如下:分支显示,打包,重启。
实时刷新到web的整体思路:
当点击分支显示时,做的操作是,把服务名发送到后端,然后调用shell执行git相关命令的操作,将所有分支实时显示到web界面上,然后通过点击触发事件将分支名加到vuex中对应的服务名后面的branch字段中,此时public公共组件里面的watch会实时监听vuex中的值将分支名称显示到如下,当点击打包按钮时,会将这个分支名和服务名一并发送到后端,执行相关的shell脚本,执行完相关的shell脚本后将jar包发送到指定的位置,当然在执行这个shell过程中会实时的将打包日子显示到web界面上,对于重启按钮显示日志也是一样的,但是这里想用其他方法实现。接下来会讲到。
用到的技术:
第一版:websocket+paramiko
参考博客:https://www.cnblogs.com/xiao987334176/p/10289262.html
思路:通过paramiko模块实现python和shell的交互,并将执行的结果保存到标准输出中,然后通过和websocket循环的方式显示到web界面中。
第二版:websocket+websocketd
websocketd的官网:http://websocketd.com/
webcocketd的简单使用:
websocketd允许用几乎任何编程语言编写WebSocket端点。
端点的连接与关系:
每当浏览器连接到该URL时,websocketd服务器将启动进程的新实例。当浏览器断开连接时,进程将停止。
如果有10个浏览器连接到您的服务器,那么将有10个独立的程序实例运行。websocketd负责监听WebSocket连接并启动/停止程序进程。
是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。有浏览器发起建立连接之后,服务端也可以主动向浏览器发送数据。
这是我自己测试的结果:
官网还有websocket+websocketd的测试,到时候将websocket的代码部分写入到vue中的script中就可以了。
websocketd官网上有测试,拷贝下来也可以自己测试,完全没有问题的。这里没有继续在代码里面实现的原因是被打击的太严重了,做完之后发现和jenkins持续构架并没有什么区别,jenkins的流程也是在本地打包,打好包之后使用ssh方式将jenkins服务器上的包发送到远程主机并执行重启相关的脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。