python 學習 -- 分散式程序
import random,time,queue from multiprocessing.managers import BaseManager # 傳送任務的佇列 task_queue = queue.Queue() # 接收結果的佇列 result_queue = queue.Queue() class QueueManager(BaseManager): pass # 定義一個返回task_queue的函式 def return_task_queue(): global task_queue return task_queue # 定義一個返回結果佇列的函式 def return_result_queue(): global result_queue return result_queue # 測試函式 def test(): # 將兩個queue註冊到網路上 QueueManager.register('get_task_queue', callable=return_task_queue) QueueManager.register('get_result_queue', callable=return_result_queue) # 繫結埠,同時設定驗證碼 manager = QueueManager(address=('127.0.0.1', 5000), authkey=b'abc') # 啟動queue manager.start() # 獲得通過網路訪問的queue物件 task = manager.get_task_queue() result = manager.get_result_queue() # 放幾個任務進去 for i in range(10): n = random.randint(0, 100) print('Put task %d...' % n) task.put(n) # 從result佇列中取出結果 print("Try get results...") for i in range(10): r = result.get(timeout=10) print("Result: %s" % r) # 關閉(之前一直阻塞) manager.shutdown() print("master exit.") # main函式 if __name__=="__main__": test()
測試端:
import time,sys,queue from multiprocessing.managers import BaseManager class QueueManager(BaseManager): pass # 從網路上獲取queue ,註冊時候提供名字 QueueManager.register('get_task_queue') QueueManager.register('get_result_queue') # 連線到伺服器 server_addr = '127.0.0.1' print('Connect to server %s...' % server_addr) m = QueueManager(address=(server_addr,5000),authkey=b'abc') m.connect() # 獲取queue物件 task = m.get_task_queue() result = m.get_result_queue() for i in range(10): try: n = task.get(timeout=1) print('run task %d*%d...' % (n,n)) r = '%d * %d = %d' %(n,n,n*n) time.sleep(1) result.put(r) except BaseException: print('error') print("worker exit.")
相關推薦
python 學習 -- 分散式程序
伺服器端:import random,time,queue from multiprocessing.managers import BaseManager # 傳送任務的佇列 task_queue = queue.Queue() # 接收結果的佇列 result_qu
Python學習--課本程序練習(周更)
tor bar 工作日 刷新 () 一次 ima pos else 1.繪制正方形螺旋線 import turtle turtle.setup(600,300,200,200) turtle.pensize(1) turtle.color(‘green‘) i=0
【Python學習】程序運行完發送郵件提醒
直接 登錄 word 提醒 地址 install python3 ont world 有時候我們運行一個需要跑很長時間的程序,不管是在雲主機還是本地主機上運行,我們都不可能一直守在電腦面前等。所以想到使用郵件來通知提醒。 示例代碼如下 # -*- coding: utf-8
Python學習多程序併發寫入同一檔案
最近學習了Python的多程序,想到我的高德API爬蟲那個爬取讀寫速度我就心累,實在是慢,看到多程序可以充分利用CPU核數我就開始完善我的程式碼,不過過程是艱辛的,在此之中出現了很多問題,其中最大的問題是爬取的資料是正確的,但是讀寫到Excel中卻開啟是空,想了半天也沒解決,腦子笨沒辦法,不過我
python 實現分散式程序
前言 本來在學習廖雪峰老師的分散式程序模組,但是使用其程式碼執行,發現了各種報錯,通過自己的解決能順利跑通,現跟大家分享一下。 本文是通過學習廖雪峰老師的教程進行的記錄,僅用於個人學習記錄,請大家支援原創。 作業系統 由於目前僅試驗了windows系統下的開發
Python基礎-分散式程序 Master/Worker模型
分散式程序 Python的multiprocessing模組不但支援多程序,其中的managers子模組還支援吧多程序分佈到多臺機器上。 Demo 執行示例 服務端 #!/usr/bin/env python3 # -*- coding
Python筆記——分散式程序
在Thread和Process中,應當優選Process,因為Process更穩定,而且,Process可以分佈到多臺機器上,而Thread最多隻能分佈到同一臺機器的多個CPU上。 Python的multiprocessing模組不但支援多程序,其中managers子模組還
Python學習第一章:第一次的親密接觸之初識程序(二)
inpu alt blog put 分享 裏的 hello 格式 img 上次我們講到print(Hello Word)及變量的使用,下面我們繼續: 比如我們想在程序中實現格式化輸出如: 那麽我們我們就要進行簡單的格式化定義,一個很簡單的input語法實現,案例如下:
python學習(5)寫一個二分算法的程序
AR 小結 == inpu env bre elif 進行 span 把之前學習的做一個小結。之前看二分查找法,只能是似而非地看懂大概。現在用這麽多天的知識積累已經可以自己寫了。 而且在算法書的基礎上,把需要找的數字做一個人機互動操作。 另外,初步接觸到了 __name__
Python學習之編寫登陸認證程序
inpu file 存儲 提示 用戶鎖定 通過 允許 odin 判斷 需求: 讓用戶輸入用戶名密碼 認證成功後顯示歡迎信息 輸錯三次後退出程序 可以支持多個用戶登錄 (提示,通過列表存多個賬戶信息) 用戶3次認證失敗後,退出程序,再次啟動程序嘗試登錄時,還是鎖定狀態(提示:
5.Python學習筆記:綜合練習[購物車程序]
phone python IV 技術分享 pri pen user code 練習 salary=5000 flag=True user_buy1=[] msg=‘‘‘ --------歡迎光臨----------- salary=5000 1.iphon
python學習:購物車程序
打印 opp ase true choice car pri while 購物車 購物車程序 product_list = [ (‘mac‘,9000), (‘kindle‘,800), (‘tesla‘,900000), (‘python book
20180821 Python學習筆記:如何獲取當前程序路徑
con awl tab style onf getcwd nbsp 為知筆記 想要 20180821 Python學習筆記:如何獲取當前程序路徑啟動的腳本的路徑為:D:\WORK\gitbase\ShenzhenHouseInfoCrawler\main.py當前腳本的路徑
python學習總結(一),第一個python程序的編寫
程序代碼 spa 編碼 結構 編輯 下載地址 utf 修改編碼 general 1. python是一種解釋性,編譯型,互動型的語言,面向對象,動態數據類型的高級程序設計語言。 1.1 交互式:意味著可以在一個提示符直接交互執行你寫的程序。 1.2 解釋型:意味著開發過程中
python學習:一次簡單的購物車程序實例
isdigit python學習 python form compute 啟動 index computer nbsp 需求: 1、啟動程序後,讓用戶輸入余額,然後打印商品列表 2、允許用戶根據商品編號購買商品 3、用戶選擇商品後,檢查余額是否足夠,足夠加入購物車直接扣款,
python學習之面向對象程序設計的一些思考
函數 對象 程序 以及 有時 使用實例 狀態 情況 讓其 將屬於一類的對象放在一起: 如果一個函數操縱一個全局變量,那麽兩者最好都在類內作為特性和方法實現。 不要讓對象過於親密: 方法應該只關心自己實例的特性,讓其他實例管理自己的狀態。 簡單就好:
Python學習筆記【Supervisor】:使用Supervisor監控Tornado程序
Linux常見應用服務配置模式nginx和supervisor:採用主配置檔案+專案配置檔案 安裝(如果使用pip安裝注意看是否需要指定使用python2版本) 第一步:在Linux中使用apt-get 指令安裝 sudo apt-get install supervisor
python 學習第二十五天(程序的呼叫,程序池)
程序的呼叫 方法一: from multiprocessing import Process import time def f(name): time.sleep(1) print('hello', name,time.ctim
python 學習第二十二天(程序和執行緒)
程序 程序就是一個程式在一個數據集上的一次動態執行過程。 程序一般由程式、資料集、程序控制塊三部分組成。 我們編寫的程式用來描述程序要完成哪些功能以及如何完成; 資料集則是程式在執行過程中所需要使用的資源; 程序控制塊用來記錄程序的外部特徵,描述程序的執行變化過程,系統可以利
Python學習第35天之程序part1
一、程序的理論基礎 1、程序就是一個程式在一個數據集上的一次動態執行過程。是用來描述程式執行過程的虛擬概念。程序的概念起源於作業系統,程序是作業系統最核心的概念,作業系統其它所有的概念都是圍繞程序來的。程序一般由程式、資料集、程序控制塊三部分組成。我們編寫的程式用來描述程序要完成哪些功能以及如何完成;資料集