From 314400a1bdced90f8b64a7171a868d71d16808da Mon Sep 17 00:00:00 2001 From: Jack Robison Date: Thu, 2 Aug 2018 14:32:08 -0400 Subject: [PATCH] move looping call to check announcement status to SQLiteStorage --- lbrynet/core/BlobManager.py | 12 +----------- lbrynet/database/storage.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/lbrynet/core/BlobManager.py b/lbrynet/core/BlobManager.py index 4a86ed581..cb34010f4 100644 --- a/lbrynet/core/BlobManager.py +++ b/lbrynet/core/BlobManager.py @@ -1,8 +1,7 @@ import logging import os from sqlite3 import IntegrityError -from twisted.internet import threads, defer, task -from lbrynet import conf +from twisted.internet import threads, defer from lbrynet.blob.blob_file import BlobFile from lbrynet.blob.creator import BlobFileCreator @@ -26,23 +25,14 @@ class DiskBlobManager(object): self.blobs = {} self.blob_hashes_to_delete = {} # {blob_hash: being_deleted (True/False)} - self.check_should_announce_lc = None - # TODO: move this looping call to SQLiteStorage - if 'reflector' not in conf.settings['components_to_skip']: - self.check_should_announce_lc = task.LoopingCall(self.storage.verify_will_announce_all_head_and_sd_blobs) - @defer.inlineCallbacks def setup(self): - if self.check_should_announce_lc and not self.check_should_announce_lc.running: - self.check_should_announce_lc.start(600) if self._node_datastore is not None: raw_blob_hashes = yield self.storage.get_all_finished_blobs() self._node_datastore.completed_blobs.update(raw_blob_hashes) defer.returnValue(True) def stop(self): - if self.check_should_announce_lc and self.check_should_announce_lc.running: - self.check_should_announce_lc.stop() return defer.succeed(True) def get_blob(self, blob_hash, length=None): diff --git a/lbrynet/database/storage.py b/lbrynet/database/storage.py index d2bbb5849..4da53f2ce 100644 --- a/lbrynet/database/storage.py +++ b/lbrynet/database/storage.py @@ -181,10 +181,17 @@ class SQLiteStorage(object): # when it loads each file self.content_claim_callbacks = {} # {: } + if 'reflector' not in conf.settings['components_to_skip']: + self.check_should_announce_lc = task.LoopingCall(self.verify_will_announce_all_head_and_sd_blobs) + + @defer.inlineCallbacks def setup(self): def _create_tables(transaction): transaction.executescript(self.CREATE_TABLES_QUERY) - return self.db.runInteraction(_create_tables) + yield self.db.runInteraction(_create_tables) + if self.check_should_announce_lc and not self.check_should_announce_lc.running: + self.check_should_announce_lc.start(600) + defer.returnValue(None) @defer.inlineCallbacks def run_and_return_one_or_none(self, query, *args): @@ -203,6 +210,8 @@ class SQLiteStorage(object): defer.returnValue([]) def stop(self): + if self.check_should_announce_lc and self.check_should_announce_lc.running: + self.check_should_announce_lc.stop() self.db.close() return defer.succeed(True)