def start_publishing_events(self, stream_id): while(True): event_data = self.event_queue[stream_id].get() event_id = event_data["event_id"] data_to_send = json_util.dumps(event_data).replace("\r\n", "\n\n") if(event_id!=Event.RESET_POLLS_AND_SONG): EventListeners.last_few_events[stream_id].append(data_to_send) else: self.last_reset_event[stream_id] = data_to_send if(len(EventListeners.last_few_events[stream_id])>20): EventListeners.last_few_events[stream_id].pop(0) StreamEvent.add(stream_id, data_to_send) for socket in self.event_listeners[stream_id]: # send data in parallel ? Greenlet.spawn(EventListeners.send_event , self, stream_id , socket, data_to_send)
def init_stream_listeners(self, stream_id): self.event_listeners[stream_id] = {} self.event_queue[stream_id] = gevent.queue.Queue() self.last_few_events[stream_id] = StreamEvent.get_events(stream_id) Greenlet.spawn(EventListeners.start_publishing_events, self, stream_id) '''
def start_publishing_events(self, stream_id): while (True): event_data = self.event_queue[stream_id].get() event_id = event_data["event_id"] data_to_send = json_util.dumps(event_data).replace("\r\n", "\n\n") if (event_id != Event.RESET_POLLS_AND_SONG): EventListeners.last_few_events[stream_id].append(data_to_send) else: self.last_reset_event[stream_id] = data_to_send if (len(EventListeners.last_few_events[stream_id]) > 20): EventListeners.last_few_events[stream_id].pop(0) StreamEvent.add(stream_id, data_to_send) for socket in self.event_listeners[stream_id]: # send data in parallel ? Greenlet.spawn(EventListeners.send_event, self, stream_id, socket, data_to_send)