<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
        主站蜘蛛池模板: 黄页网站在线看免费| 免费A级毛片在线播放| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 国产亚洲精品成人AA片新蒲金 | 亚洲欧洲精品在线| 免费A级毛片无码A∨免费| 老色鬼久久亚洲AV综合| 精品免费AV一区二区三区| 暖暖日本免费在线视频| 亚洲VA中文字幕无码毛片| 亚洲 暴爽 AV人人爽日日碰 | 又大又硬又粗又黄的视频免费看| 午夜视频在线免费观看| 婷婷精品国产亚洲AV麻豆不片| 中文字幕亚洲精品无码| 国产高清视频在线免费观看| 天天综合亚洲色在线精品| 一区二区免费视频| 亚洲国产美女精品久久久久| 在线免费播放一级毛片 | 亚洲资源最新版在线观看| 三年片在线观看免费观看高清电影 | 亚洲精品在线观看视频| 成年人免费的视频| 亚洲人成网www| 毛片免费视频播放| 免费中文字幕视频| 成年女人永久免费观看片| 免费大片av手机看片| 女人被免费视频网站| 免费看一级高潮毛片| 亚洲精品视频在线| 国产美女无遮挡免费视频网站| 久久久久se色偷偷亚洲精品av | 免费看黄网站在线看| 亚洲电影一区二区三区| 成人影片麻豆国产影片免费观看 | 99热在线精品免费全部my| 亚洲精品线在线观看| 永久免费看bbb| 苍井空亚洲精品AA片在线播放|