diff options
author | Petr Jelinek | 2013-09-04 12:55:29 +0000 |
---|---|---|
committer | Petr Jelinek | 2013-09-04 12:55:29 +0000 |
commit | 47cfed289d0f5b46e7bf39a1f1b4b46d26ff126a (patch) | |
tree | dac2b051a635b7b95830d5806ff7bbf40e3b429e | |
parent | b757934182c85ece36ce76d91fde22e8ccf60987 (diff) |
Add timeout for add-table operation to avoid possible locking issues.
-rw-r--r-- | python/londiste/setup.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/python/londiste/setup.py b/python/londiste/setup.py index 20d3f5c0..1ce79598 100644 --- a/python/londiste/setup.py +++ b/python/londiste/setup.py @@ -40,6 +40,8 @@ class LondisteSetup(CascadeAdmin): self.set_name = self.queue_name + self.lock_timeout = self.cf.getfloat('lock_timeout', 10) + londiste.handler.load_handler_modules(self.cf) def init_optparse(self, parser=None): @@ -117,6 +119,13 @@ class LondisteSetup(CascadeAdmin): def is_root(self): return self.queue_info.local_node.type == 'root' + def set_lock_timeout(self, curs): + ms = int(1000 * self.lock_timeout) + if ms > 0: + q = "SET LOCAL statement_timeout = %d" % ms + self.log.debug(q) + curs.execute(q) + def cmd_add_table(self, *args): """Attach table(s) to local node.""" @@ -198,6 +207,8 @@ class LondisteSetup(CascadeAdmin): tbl_exists = skytools.exists_table(dst_curs, dest_table) dst_db.commit() + self.set_lock_timeout(dst_curs) + if dest_table == tbl: desc = tbl else: |