• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    基于RabbitMQrpc實現的主機管理

    來源:懂視網 責編:小采 時間:2020-11-27 14:13:56
    文檔

    基于RabbitMQrpc實現的主機管理

    基于RabbitMQrpc實現的主機管理:題目:基于RabbitMQ rpc實現的主機管理,下面就來具體介紹一下。需求:可以對指定機器異步的執行多個命令例子:>>:run "df -h" --hosts 192.168.3.55 10.4.3.4 task id: 45334 >>: check_task 45
    推薦度:
    導讀基于RabbitMQrpc實現的主機管理:題目:基于RabbitMQ rpc實現的主機管理,下面就來具體介紹一下。需求:可以對指定機器異步的執行多個命令例子:>>:run "df -h" --hosts 192.168.3.55 10.4.3.4 task id: 45334 >>: check_task 45
    題目:基于RabbitMQ rpc實現的主機管理,下面就來具體介紹一下。

    需求:

    可以對指定機器異步的執行多個命令
    例子:

    >>:run "df -h" --hosts 192.168.3.55 10.4.3.4 
    task id: 45334
    >>: check_task 45334 
    >>:

    注意,每執行一條命令,即立刻生成一個任務ID,不需等待結果返回,通過命令check_task TASK_ID來得到任務結果

    README

     1 基于RabbitMQ rpc實現的主機管理 2 可以對指定機器異步的執行多個命令 3 例子: 4 >>:run "df -h" --hosts 192.168.3.55 10.4.3.4 5 task id: 45334 6 >>: check_task 45334 #查看任務信息 7 8 程序結構: 9 RabbitMQ_PRC/#綜合目錄10 |- - -PRC_CLIENT/#client程序主目錄11 | |- - -__init__.py12 | |- - -bin/#執行程目錄13 | | |- - -__init__.py14 | | |- - -clien_start.py #客戶端執行文件15 | |16 | |17 | |- - -core #主邏輯程序目錄18 | | |- - -__init__.py19 | | |- - -clien_class.py#客戶端執行主要邏輯 類20 | |21 | |22 |23 |24 |- - -PRC_SERVER/#服務端程序目錄25 | |- - -__init__.py26 | |- - -bin/#執行目錄27 | | |- - -__init__.py28 | | |- - -server_start.py#服務端程序執行文件29 | |30 | |31 | |- - -core/##主邏輯程序目錄32 | | |- - -server_class.py#主邏輯 相關類33 | |34 |35 |- - -README

    程序結構:
    RabbitMQ_PRC/#綜合目錄
    |- - -PRC_CLIENT/#client程序主目錄
    | |- - -__init__.py
    | |- - -bin/#執行程目錄
    | | |- - -__init__.py
    | | |- - -clien_start.py #客戶端執行文件
    1 import os ,sys2 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#獲取相對路徑轉為絕對路徑賦于變量3 sys.path.append(BASE_DIR)#增加環境變量4 5 from core.client_class import Threa6 7 if __name__ == '__main__':8 RPCS=Threa()9 response=RPCS.th_start()
    View Code
    | |- - -core #主邏輯程序目錄
    | | |- - -__init__.py
    | | |- - -clien_class.py#客戶端執行主要邏輯 類
     1 import pika 2 import uuid 3 import threading 4 import random 5 6 class FibonacciRpcClient(object): 7 def __init__(self): 8 #self.credentials=pika.PlainCredentials("test","test") 9 self.connection = pika.BlockingConnection(pika.ConnectionParameters(host="localhost"))#生成連接的服務端 ip 10 #self.connection = pika.BlockingConnection(pika.ConnectionParameters("192.168.11.51",15672,'/',self.credentials))#生成連接的服務端 ip 11 self.channel = self.connection.channel()#創建一個管道 12 13 def get_respon(self,cal_queue,cal_id):#取任務信息 14 self.response=None 15 self.callback_id=cal_id#隊列名 16 self.channel.basic_consume(self.on_response,queue=cal_queue)# 使用回調函數 17 while self.response is None: 18 self.connection.process_data_events()#非阻塞模式接收消息 19 return self.response#返回 20 21 def on_response(self, ch, method, props, body):#回調函數 22 if self.callback_id == props.correlation_id:#判斷服務端返回的隊列名是否與當前所生成的隊列名一致 23 self.response = body# 將服務端的結果賦于返回來的結果變量 24 ch.basic_ack(delivery_tag = method.delivery_tag)##確保消息被 接收 25 26 def call(self, queues,n):#發送消息的函數 27 result = self.channel.queue_declare(exclusive=False)#隨機生成一個隊列,收消息后不刪除 28 self.callback_queue = result.method.queue#賦于管道 變量 29 self.corr_id = str(uuid.uuid4())#生成一個服務端返回消息的隊列名 30 self.channel.basic_publish(exchange='', 31 routing_key=queues,#隊列名 32 properties=pika.BasicProperties( 33 reply_to = self.callback_queue,#發送的管道隊列名 34 correlation_id = self.corr_id,#發送給服務端,用于返回消息的隊列名 35 ), 36 body=str(n))#發送的內容數據 37 return self.callback_queue,self.corr_id#返回管道名 隊列id號 38 39 class Threa(object):#線程 類 40 def __init__(self): 41 self.info={}#生成一個字典 42 self.help_info=''' 指令示例
    
    主站蜘蛛池模板:
    久久久精品免费国产四虎|
    91麻豆精品国产91久久久久久
    |
    在线观看自拍少妇精品|
    国产亚洲美女精品久久久久狼|
    无码国产精品一区二区免费模式|
    老司机精品影院91|
    国产精品99久久精品爆乳|
    久久精品免费观看|
    国产成人精品精品欧美|
    久久精品国产亚洲AV大全|
    亚欧无码精品无码有性视频|
    国产精品无码一区二区在线
    |
    国产欧美精品AAAAAA片|
    亚洲日韩国产精品乱|
    久久精品国产精品亚洲|
    99久久婷婷国产综合精品草原|
    精品精品国产高清a毛片牛牛|
    国产精品日韩AV在线播放|
    无码精品人妻一区二区三区免费看
    |
    国产免费久久精品丫丫|
    亚洲欧洲国产精品你懂的|
    国产精品美女久久久久网|
    国产精品亚洲日韩欧美色窝窝色欲
    |
    青青久久精品国产免费看|
    国产色精品vr一区区三区|
    国产精品igao视频|
    国产69精品久久久久9999|
    国产精品xxxx国产喷水亚洲国产精品无码久久一区
    |
    日本国产精品久久|
    欧美在线精品一区二区三区|
    欧美人与动牲交a欧美精品|
    欧美日韩国产精品|
    亚洲AV无码成人精品区大在线|
    免费人成在线观看欧美精品
    |
    天天爽夜夜爽8888视频精品|
    午夜精品久久久久久|
    亚洲精品国产电影|
    最新国产成人精品2024|
    久久久无码精品亚洲日韩按摩|
    精品少妇无码AV无码专区|
    国产成人精品久久一区二区三区|