<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Python自定義主從分布式架構實例分析

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

        Python自定義主從分布式架構實例分析

        Python自定義主從分布式架構實例分析:這篇文章主要介紹了Python自定義主從分布式架構,結合實例形式分析了主從分布式架構的結構、原理與具體的代碼實現技巧,需要的朋友可以參考下本文實例講述了Python自定義主從分布式架構。分享給大家供大家參考,具體如下:環境:Win7 x64,Python 2.7
        推薦度:
        導讀Python自定義主從分布式架構實例分析:這篇文章主要介紹了Python自定義主從分布式架構,結合實例形式分析了主從分布式架構的結構、原理與具體的代碼實現技巧,需要的朋友可以參考下本文實例講述了Python自定義主從分布式架構。分享給大家供大家參考,具體如下:環境:Win7 x64,Python 2.7
        這篇文章主要介紹了Python自定義主從分布式架構,結合實例形式分析了主從分布式架構的結構、原理與具體的代碼實現技巧,需要的朋友可以參考下

        本文實例講述了Python自定義主從分布式架構。分享給大家供大家參考,具體如下:

        環境:Win7 x64,Python 2.7,APScheduler 2.1.2。

        原理圖如下:

        Python自定義主從分布式架構實例分析

        代碼部分:

        (1)、中心節點:

        #encoding=utf-8
        #author: walker
        #date: 2014-12-03
        #function: 中心節點(主要功能是分配任務)
        import SocketServer, socket, Queue
        CenterIP = '127.0.0.1' #中心節點IP
        CenterListenPort = 9999 #中心節點監聽端口
        CenterClient = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #中心節點用于發送網絡消息的socket
        TaskQueue = Queue.Queue() #任務隊列
        #獲取任務隊列
        def GetTaskQueue():
         for i in range(1, 11):
         TaskQueue.put(str(i))
        #CenterServer的回調函數,在接受到udp報文是觸發
        class MyUDPHandler(SocketServer.BaseRequestHandler):
         def handle(self):
         data = self.request[0].strip()
         socket = self.request[1]
         print(data)
         if data.startswith('wait'):
         vec = data.split(':')
         if len(vec) != 3:
         print('Error: len(vec) != 3')
         else:
         nodeIP = vec[1]
         nodeListenPort = vec[2]
         nodeID = nodeIP + ':' + nodeListenPort
         if not TaskQueue.empty():
         task = TaskQueue.get()
         print('send task ' + task + ' to ' + nodeID)
         CenterClient.sendto('task:' + task, (nodeIP, int(nodeListenPort)))
         else:
         print('TaskQueue is empty!')
        GetTaskQueue() #獲取任務隊列
        CenterServer = SocketServer.UDPServer((CenterIP, CenterListenPort), MyUDPHandler)
        print('Listen port ' + str(CenterListenPort) + ' ...')
        CenterServer.serve_forever()

        (2)、任務節點:

        #encoding=utf-8
        #author: walker
        #date: 2014-12-03
        #function: 任務節點(請求/接收/執行任務)
        import time, socket, SocketServer
        from apscheduler.scheduler import Scheduler
        CenterIP = '127.0.0.1' #中心節點IP
        CenterListenPort = 9999 #中心節點監聽端口
        NodeIP = socket.gethostbyname(socket.gethostname()) #任務節點自身IP
        NodeClient = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #任務節點用于發送網絡消息的socket
        #任務:發送網絡信息
        def jobSendNetMsg():
         msg = ''
         if NodeServer.TaskState == 'wait':
         msg = 'wait:' + NodeIP + ':' + str(NodeListenPort)
         elif NodeServer.TaskState == 'exec':
         msg = 'exec:' + NodeIP + ':' + str(NodeListenPort)
         print(msg)
         NodeClient.sendto(msg, (CenterIP, CenterListenPort))
        #添加并啟動定時任務
        def InitTimer():
         sched = Scheduler()
         sched.add_interval_job(jobSendNetMsg, seconds=1)
         sched.start()
        #執行任務
        def ExecTask(task):
         print('ExecTask ' + task + ' ...')
         time.sleep(2)
         print('ExecTask ' + task + ' over')
        #NodeServer的回調函數,在接受到udp報文是觸發
        class MyUDPHandler(SocketServer.BaseRequestHandler):
         def handle(self):
         data = self.request[0].strip()
         socket = self.request[1]
         print('recv data: ' + data)
         if data.startswith('task'):
         vec = data.split(':')
         if len(vec) != 2:
         print('Error: len(vec) != 2')
         else:
         task = vec[1]
         self.server.TaskState = 'exec'
         ExecTask(task)
         self.server.TaskState = 'wait'
        InitTimer()
        NodeServer = SocketServer.UDPServer(('', 0), MyUDPHandler)
        NodeServer.TaskState = 'wait' #(exec/wait)
        NodeListenPort = NodeServer.server_address[1]
        print('NodeListenPort:' + str(NodeListenPort))
        NodeServer.serve_forever()

        更多Python自定義主從分布式架構實例分析相關文章請關注PHP中文網!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Python自定義主從分布式架構實例分析

        Python自定義主從分布式架構實例分析:這篇文章主要介紹了Python自定義主從分布式架構,結合實例形式分析了主從分布式架構的結構、原理與具體的代碼實現技巧,需要的朋友可以參考下本文實例講述了Python自定義主從分布式架構。分享給大家供大家參考,具體如下:環境:Win7 x64,Python 2.7
        推薦度:
        標簽: 實例 python pytho
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产成人精品免费视频大| aaa毛片免费观看| 波多野结衣免费在线| 亚洲电影国产一区| 久久免费视频网站| 亚洲国产精品久久久久网站 | 亚洲精品中文字幕乱码| 免费黄网站在线看| 久久精品九九亚洲精品| 18禁网站免费无遮挡无码中文| 亚洲日韩乱码中文无码蜜桃臀| 日本免费xxxx色视频| 亚洲国产日韩综合久久精品| 99久久亚洲精品无码毛片| 久草视频在线免费看| 亚洲国产成+人+综合| 三上悠亚电影全集免费| 亚洲国产另类久久久精品| 免费观看91视频| 亚洲制服丝袜在线播放| 成年大片免费视频| 一级一片免费视频播放| 亚洲国产精品无码专区| 久草免费在线观看视频| 亚洲AV综合色区无码一二三区| 亚洲日本一区二区一本一道| 无码日韩精品一区二区免费暖暖| 亚洲AV之男人的天堂| 亚洲制服丝袜中文字幕| 久久精品成人免费观看| 亚洲成电影在线观看青青| 国产精品另类激情久久久免费| 一个人看的www免费在线视频| 久久久久久a亚洲欧洲AV| 久久久久久国产a免费观看黄色大片| 日韩欧美亚洲中文乱码| 亚洲另类激情综合偷自拍图| 青娱乐免费在线视频| 亚洲阿v天堂在线2017免费 | 国产免费小视频在线观看| 91成人免费观看在线观看|