Skip to content

Commit e40528d

Browse files
Added queue flush interval
1 parent e47d8b1 commit e40528d

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

track/client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ class Client(object):
1919
logger = logging.getLogger('interakt')
2020

2121
def __init__(self, write_key=None, host=None, debug=False,
22-
sync_mode=True, timeout=10, max_queue_size=10000, on_error=None, max_retries=3):
22+
sync_mode=True, timeout=10, max_queue_size=10000,
23+
on_error=None, max_retries=3, flush_interval=0.5):
2324
"""Create a new interakt client"""
2425
require('write_key', write_key, str)
2526

@@ -40,7 +41,7 @@ def __init__(self, write_key=None, host=None, debug=False,
4041
self.consumer = Consumer(
4142
queue=self.queue, write_key=write_key,
4243
host=host, on_error=on_error, retries=max_retries,
43-
timeout=timeout
44+
timeout=timeout, flush_interval=flush_interval
4445
)
4546
self.consumer.start()
4647

track/consumer.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ class Consumer(Thread):
1414
logger = logging.getLogger('interakt')
1515

1616
def __init__(self, queue, write_key, host=None,
17-
on_error=None, retries=3, timeout=10):
17+
on_error=None, retries=3, timeout=10,
18+
flush_interval=0.5):
1819
Thread.__init__(self)
1920
self.running = True
2021
self.queue = queue
@@ -23,6 +24,7 @@ def __init__(self, queue, write_key, host=None,
2324
self.on_error = on_error
2425
self.retries = retries
2526
self.timeout = timeout
27+
self.flush_interval = flush_interval
2628

2729
def run(self):
2830
"""Runs the consumer."""
@@ -40,7 +42,7 @@ def upload(self):
4042
queue = self.queue
4143
queue_msg = None
4244
try:
43-
queue_msg = queue.get(block=True, timeout=1)
45+
queue_msg = queue.get(block=True, timeout=self.flush_interval)
4446
except Empty:
4547
self.logger.debug("queue is empty now")
4648

0 commit comments

Comments
 (0)