how to notify among the def and can network communication such as zeromq for python do this?

Ho Yeung Lee davidbenny2000 at gmail.com
Tue Feb 23 07:15:40 EST 2016


in the following code, node 3 and node 4 running parallel

if there are 100 nodes running parallel, how can they notify each other

i find this post stackoverflow, 

http://stackoverflow.com/questions/29324346/how-do-i-connect-asyncio-coroutines-that-continually-produce-and-consume-data


if zeromq for python can not do notify among parallel nodes which means give handle to another def

my goal is to make each node can notify all other nodes if each node need

import asyncio
import time
from concurrent.futures import ProcessPoolExecutor

def f000():
 try:
  print "000"
  ex = ProcessPoolExecutor(2)
  yield from loop.run_in_executor(ex, time.sleep, 10)
 except:
  print "000 exception"

def f001():
 try:
  print "001"
  ex = ProcessPoolExecutor(2)
  yield from loop.run_in_executor(ex, time.sleep, 10)
 except:
  print "001 exception"

def f002():
 try:
  print "002"
  ex = ProcessPoolExecutor(2)
  yield from loop.run_in_executor(ex, time.sleep, 10)
 except:
  print "002 exception"

def f003():
 try:
  print "003"
  ex = ProcessPoolExecutor(2)
  yield from loop.run_in_executor(ex, time.sleep, 10)
 except:
  print "003 exception"

def f004():
 try:
  print "004"
  ex = ProcessPoolExecutor(2)
  yield from loop.run_in_executor(ex, time.sleep, 10)
 except:
  print "004 exception"

machine = {}
mappedfunc = {}
functionlist000 = []
functionlist001 = []
functionlist002 = []
functionlist003 = []
functionlist004 = []

functionlist000.append('002')
functionlist001.append('000')
functionlist002.append('003')
functionlist002.append('004')

functionlist003.append('001')
functionlist004.append('001')

machine000 = {'000': functionlist000}
machine001 = {'001': functionlist001}
machine002 = {'002': functionlist002}
machine003 = {'003': functionlist003}
machine004 = {'004': functionlist004}

machine.update(machine000)
machine.update(machine001)
machine.update(machine002)
machine.update(machine003)
machine.update(machine004)

functionkey000 = {'000': f000 }
functionkey001 = {'001': f001 }
functionkey002 = {'002': f002 }
functionkey002 = {'003': f003 }
functionkey002 = {'004': f004 }

mappedfunc.update(functionkey000)
mappedfunc.update(functionkey001)
mappedfunc.update(functionkey002)
mappedfunc.update(functionkey003)
mappedfunc.update(functionkey004)

def workingthreadpool(currentnumber1):
  i = 1
 #while i < 7:
  #i = i + 1
  functionlist0 = list(machine.get(currentnumber1).values())

  loop = asyncio.get_event_loop()
  tesks = []
  
  j = 1
  for functionlistelement in functionlist0
   tesks.append(asyncio.ensure_future(mappedfunc.get(functionlistelement)()))
   if j > 1:
    workingthreadpool(functionlistelement)
   j = j + 1

  loop.run_until_complete(asyncio.wait_for(tesks, 1))
  loop.close()

currentnumber = "000"
workingthreadpool(currentnumber)


More information about the Python-list mailing list