def manage_webhook_data(_queue): warning_limit = datetime.utcnow() while True: # Check queue length periodically if (datetime.utcnow() - warning_limit) > timedelta(seconds=30): warning_limit = datetime.utcnow() size = _queue.qsize() if size > 2000: log.warning( "Queue length at %s! This may be causing a" "significant delay in notifications.", size) # Distribute events to the other managers data = _queue.get(block=True) obj = Events.event_factory(data) if obj is None: # TODO: Improve Event error checking continue for name, mgr in managers.iteritems(): if isinstance(obj, list): for event in obj: mgr.update(event) log.debug("Distributed event %s to %s managers.", event.id, len(managers)) else: mgr.update(obj) if not isinstance(obj, list): log.debug("Distributed event %s to %s managers.", obj.id, len(managers))
def manage_webhook_data(queue): while True: qsize = queue.qsize() if qsize > 5000: log.warning("Queue length is at %s... this may be causing " + "a significant delay in notifications.", qsize) data = queue.get(block=True) obj = Events.event_factory(data) if obj is not None: for name, mgr in managers.iteritems(): mgr.update(obj) log.debug("Distributing event {} to manager {}.".format( obj.id, name)) log.debug("Finished distributing event: {}".format(obj.id))
def manage_webhook_data(_queue): warning_limit = datetime.utcnow() while True: # Check queue length periodically if (datetime.utcnow() - warning_limit) > timedelta(seconds=30): warning_limit = datetime.utcnow() size = _queue.qsize() if size > 2000: log.warning("Queue length at %s! This may be causing a" "significant delay in notifications.", size) # Distribute events to the other managers data = _queue.get(block=True) obj = Events.event_factory(data) if obj is None: # TODO: Improve Event error checking continue for name, mgr in managers.iteritems(): mgr.update(obj) log.debug("Distributed event %s to %s managers.", obj.id, len(managers))