欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子-創(chuàng)新互聯(lián)

最近一直跟著廖大在學(xué)Python,關(guān)于分布式進(jìn)程的小例子挺有趣的,這里做個(gè)記錄。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、義馬網(wǎng)站維護(hù)、網(wǎng)站推廣。

分布式進(jìn)程

Python的multiprocessing模塊不但支持多進(jìn)程,其中managers子模塊還支持把多進(jìn)程分布到多臺(tái)機(jī)器上。一個(gè)服務(wù)進(jìn)程可以作為調(diào)度者,將任務(wù)分布到其他多個(gè)進(jìn)程中,依靠網(wǎng)絡(luò)通信。由于managers模塊封裝很好,不必了解網(wǎng)絡(luò)通信的細(xì)節(jié),就可以很容易地編寫分布式多進(jìn)程程序。

master服務(wù)端原理:通過(guò)managers模塊把Queue通過(guò)網(wǎng)絡(luò)暴露出去,其他機(jī)器的進(jìn)程就可以訪問(wèn)Queue了
服務(wù)進(jìn)程負(fù)責(zé)啟動(dòng)Queue,把Queue注冊(cè)到網(wǎng)絡(luò)上,然后往Queue里面寫入任務(wù),代碼如下:

#task_master.py
#coding=utf-8

#多進(jìn)程分布式例子
#服務(wù)器端

from multiprocessing.managers import BaseManager
from multiprocessing import freeze_support #server啟動(dòng)報(bào)錯(cuò),提示需要引用此包
import random,time,queue

#發(fā)送任務(wù)的隊(duì)列
task_queue = queue.Queue()
#接收結(jié)果的隊(duì)列
result_queue = queue.Queue()

#從BaseManager繼承的QueueManager
class QueueManager(BaseManager):
  pass
#win7 64 貌似不支持callable下調(diào)用匿名函數(shù)lambda,這里封裝一下
def return_task_queue():
  global task_queue
  return task_queue
def return_result_queue():
  global result_queue
  return result_queue

def test():
  #把兩個(gè)Queue注冊(cè)到網(wǎng)絡(luò)上,callable參數(shù)關(guān)聯(lián)了Queue對(duì)象
  #QueueManager.register('get_task_queue',callable=lambda:task_queue)
  #QueueManager.register('get_result_queue',callable=lambda:result_queue)
  QueueManager.register('get_task_queue',callable=return_task_queue)
  QueueManager.register('get_result_queue',callable=return_result_queue)
  #綁定端口5000,設(shè)置驗(yàn)證碼‘a(chǎn)bc'
  manager = QueueManager(address=('127.0.0.1',5000),authkey=b'abc')#這里必須加上本地默認(rèn)ip地址127.0.0.1
  #啟動(dòng)Queue
  manager.start()
  #server = manager.get_server()
  #server.serve_forever()
  print('start server master')
  #獲得通過(guò)網(wǎng)絡(luò)訪問(wèn)的Queue對(duì)象
  task = manager.get_task_queue()
  result = manager.get_result_queue()
  #放幾個(gè)任務(wù)進(jìn)去
  for i in range(10):
    n = random.randint(0,10000)
    print('put task %d...' % n)
    task.put(n)
  #從result隊(duì)列讀取結(jié)果
  print('try get results...')
  for i in range(10):
    r = result.get(timeout=10)
    print('result:%s' % r)

  #關(guān)閉
  manager.shutdown()
  print('master exit')

if __name__ == '__main__':
  freeze_support()
  test()

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁(yè)題目:python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://chinadenli.net/article20/ddehco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站網(wǎng)站收錄移動(dòng)網(wǎng)站建設(shè)、小程序開(kāi)發(fā)、網(wǎng)站導(dǎo)航動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化