def send(self, ev):
'''send accepts an event and queues it to be sent'''
sd.gauge("queue_length", self.pending.qsize())
try:
if self.block_on_send:
self.pending.put(ev)
else:
self.pending.put_nowait(ev)
sd.incr("messages_queued")
except queue.Full:
response = {
"status_code": 0,
"duration": 0,
"metadata": ev.metadata,
"body": "",
"error": "event dropped; queue overflow",
}
if self.block_on_response:
self.responses.put(response)
else:
try:
self.responses.put_nowait(response)
except queue.Full:
# if the response queue is full when trying to add an event
# queue is full response, just skip it.
pass
sd.incr("queue_overflow")
评论列表
文章目录