def doPing(msg): with Session() as s: queue = Queue() for node in Node.getLinkedNode(s).all(): queue.put((node.host,)) multiThread(_doPing_worker, queue, maxWorkers=settings.MAX_CONNECTIONS) MessageQueue.enqueue(s, msgtype='join', msg='init')
def getRecent(msg): log.isEnabledFor(logging.INFO) and log.info('getRecent: {}'.format(msg.msg)) with Session() as s: queue = Queue() for node in Node.getLinkedNode(s).all(): queue.put((node.host,)) multiThread(_getRecent_worker, queue, maxWorkers=settings.MAX_CONNECTIONS)
def updateRecord(msg): with Session() as s: thread_id, hex_id, atime, nodeName = msg.msg.split() thread_id = int(thread_id) atime = int(atime) filename = Thread.getFileName(Thread.get(s, id=thread_id).value(Thread.title)) queue = Queue() for host in Node.getLinkedNode(s).values(Node.host): queue.put(( host.host, filename, atime, hex_id, thread_id, nodeName )) log.isEnabledFor(logging.INFO) and log.info('updateRecord: Run {}/{}/{} {}'.format(thread_id, atime, hex_id, nodeName)) multiThread(_updateRecord_httpGetWrapper, queue, maxWorkers=settings.MAX_CONNECTIONS) return True
def joinNetwork(msg): with Session() as s: queue = Queue() for node in Node.getInitNode(s).all(): queue.put((node.host,)) multiThread(_joinNetwork_findNodeWorker, queue, maxWorkers=settings.MAX_CONNECTIONS) with Session() as s: linkedNodeCount = Node.getLinkedNode(s).count() changeNodeCount = int(max(0, settings.MAX_NODES - linkedNodeCount) + settings.MAX_NODES/5) queue = Queue() for node in Node.getNotLinkedNode(s).limit(changeNodeCount).all(): queue.put((node.host,)) multiThread(_joinNetwork_joinWorker, queue, maxWorkers=settings.MAX_CONNECTIONS) with Session() as s: linkedNodes = Node.getLinkedNode(s).all() shuffle(linkedNodes) queue = Queue() for i in range(max(0, Node.getLinkedNode(s).count() - settings.MAX_NODES)): queue.put((linkedNodes[i].host,)) multiThread(_joinNetwork_doByeByeWorker, queue, maxWorkers=settings.MAX_CONNECTIONS)