From 6a6bbaa07b6855267a3c977a913b377670b7f0e1 Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Tue, 20 Dec 2016 07:53:55 +0900 Subject: [PATCH] Tweak mempool logging --- server/mempool.py | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/server/mempool.py b/server/mempool.py index ce149f3..2bc66d3 100644 --- a/server/mempool.py +++ b/server/mempool.py @@ -95,21 +95,30 @@ class MemPool(util.LoggedClass): await self.daemon.mempool_refresh_event.wait() self.logger.info ('beginning processing of daemon mempool. ' 'This can take some time...') - next_log = time.time() + 0.1 + next_log = 0 + loops = -1 # Zero during initial catchup while True: + # Avoid double notifications if processing a block + if self.touched and not self.processing_new_block(): + self.touched_event.set() + + # Log progress / state + todo = len(unfetched) + len(unprocessed) + if loops == 0: + pct = (len(txs) - todo) * 100 // len(txs) if txs else 0 + self.logger.info('catchup {:d}% complete ' + '({:,d} txs left)'.format(pct, todo)) + if not todo: + loops += 1 + now = time.time() + if now >= next_log and loops: + self.logger.info('{:,d} txs touching {:,d} addresses' + .format(len(txs), len(self.hash168s))) + next_log = now + 150 + try: - todo = len(unfetched) + len(unprocessed) - if todo: - pct = (len(txs) - todo) * 100 // len(txs) if txs else 0 - self.logger.info('catchup {:d}% complete ({:,d} txs left)' - .format(pct, todo)) - else: - now = time.time() - if now >= next_log: - self.logger.info('{:,d} txs touching {:,d} addresses' - .format(len(txs), len(self.hash168s))) - next_log = now + 150 + if not todo: self.prioritized.clear() await self.daemon.mempool_refresh_event.wait() @@ -123,10 +132,6 @@ class MemPool(util.LoggedClass): if unprocessed: await process_some(unprocessed) - - # Avoid double notifications if processing a block - if self.touched and not self.processing_new_block(): - self.touched_event.set() except DaemonError as e: self.logger.info('ignoring daemon error: {}'.format(e)) except asyncio.CancelledError: