国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 成人久久精品一区二区三区 | 毛片日韩| 亚洲欧洲一二三区 | 亚洲日韩精品欧美一区二区 | 在线精品福利 | 中日韩在线 | 国内精品一区二区三区 | 国产网站在线 | 日韩 国产 欧美 精品 在线 | 国产日韩一区二区三区在线播放 | 视频在线观看国产 | 国产成人欧美一区二区三区的 | 精品亚洲一区二区 | 国产原创一区二区 | 国产精品亚洲精品观看不卡 | 欧美三级在线看 | 欧美亚洲专区 | 成人欧美一区二区三区 | 精品一区 二区三区免费毛片 | 狠狠操夜夜 | 亚洲高清色 | 美国一级大黄大色毛片 | 啪啪免费网址 | 国产色综合久久无码有码 | 欧美高清正版在线 | 欧美午夜一区二区福利视频 | 欧美黑粗硬| 欧美十区 | 国产成人久久 | 亚洲视频免费一区 | 亚洲欧洲日本在线观看 | 91精品观看91久久久久久 | 久久精品a一国产成人免费网站 | 中文字幕美日韩在线高清 | 国产精品第1页 | 精品视频二区 | 精品一区二区三区免费毛片爱 | 欧美 日韩 视频 | 国产精品久久久久久一级毛片 | 国产一区二区福利久久 | 国产在线观看一区二区三区 |