Ejemplo n.º 1
0
 def poll(self):
     print ('@poll(%d):started...' % self.instance)
     print ('@poll(%d):creating GQueue.Queue...' % self.instance)
     sessions = GQueue()
     print ('@poll(%d):creating Thread...' % self.instance)
     threads = [gevent.spawn(self.task, netdev,
             sessions) for netdev in self.netdevices]
     gevent.sleep(0)
     gevent.joinall(threads)
     data = {}
     while not sessions.empty():
         data.update(sessions.get())
     self.write(data)
     print ('@poll(%d):Done!' % self.instance)
Ejemplo n.º 2
0
def api_events_log(ws) -> None:
    # Add new queue for websocket
    q = GQueue()
    with ws_locks[WS_EVENT_LOG]:
        ws_queues[WS_EVENT_LOG][ws] = q

    try:
        while not ws.closed:
            text = q.get()
            ws.send(text)
    except Exception as e:
        logger.exception("api_events_log")

    # Remove queue
    with ws_locks[WS_EVENT_LOG]:
        del ws_queues[WS_EVENT_LOG][ws]
Ejemplo n.º 3
0
 def queue(self, max_size=None):
     max_size = max_size if max_size is not None else self.queue_max_size
     return GQueue(maxsize=max_size or 0)