您好,登錄后才能下訂單哦!
針對前面兩篇博客的續寫,主體的都寫的差不多了,但是實際真正的功能并沒有寫。功能按鈕如下:分支顯示,打包,重啟。
實時刷新到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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。