class GenericLoadingTask(Thread, Task): def __init__(self, rest, bucket, kv_store=None, store_enabled=True, info=None): Thread.__init__(self) Task.__init__(self, "gen_task") self.rest = rest self.bucket = bucket self.client = KVStoreAwareSmartClient(rest, bucket, kv_store, info, store_enabled) self.state = "initializing" self.doc_op_count = 0 def cancel(self): self._Thread__stop() self.join() self.log.info("cancelling task: {0}".format(self.name)) self.cancelled = True def step(self, task_manager): if self.cancelled: self.result = self.set_result({"status": "cancelled", "value": self.doc_op_count}) if self.state == "initializing": self.state = "running" self.start() task_manager.schedule(self, 2) elif self.state == "running": self.log.info("{0}: {1} ops completed".format(self.name, self.doc_op_count)) if self.is_alive(): task_manager.schedule(self, 5) else: self.join() self.state = "finished" self.set_result({"status": "success", "value": self.doc_op_count}) elif self.state != "finished": raise Exception("Bad State in DocumentGeneratorTask") def do_task_op(self, op, key, value=None, expiration=None): retry_count = 0 ok = False if value is not None: value = value.replace(" ", "") while retry_count < 5 and not ok: try: if op == "set": if expiration is None: self.client.set(key, value) else: self.client.set(key, value, expiration) if op == "get": value = self.client.mc_get(key) if op == "delete": self.client.delete(key) ok = True except Exception: retry_count += 1 self.client.reset_vbuckets(self.rest, set([self.client._get_vBucket_id(key)])) return value
def __init__(self, rest, bucket, kv_store=None, store_enabled=True, info=None): Thread.__init__(self) Task.__init__(self, "gen_task") self.rest = rest self.bucket = bucket self.client = KVStoreAwareSmartClient(rest, bucket, kv_store, info, store_enabled) self.state = "initializing" self.doc_op_count = 0
def __init__(self, rest, kv_store, bucket="default"): self.state = "initializing" self.res = None Thread.__init__(self) self.client = KVStoreAwareSmartClient(rest, bucket, kv_store) self.kv_helper = KVStoreSmartClientHelper()
class GenericLoadingTask(Thread, Task): def __init__(self, rest, bucket, kv_store=None, store_enabled=True, info=None): Thread.__init__(self) Task.__init__(self, "gen_task") self.rest = rest self.bucket = bucket self.client = KVStoreAwareSmartClient(rest, bucket, kv_store, info, store_enabled) self.state = "initializing" self.doc_op_count = 0 def cancel(self): self._Thread__stop() self.join() self.log.info("cancelling task: {0}".format(self.name)) self.cancelled = True def step(self, task_manager): if self.cancelled: self.result = self.set_result({ "status": "cancelled", "value": self.doc_op_count }) if self.state == "initializing": self.state = "running" self.start() task_manager.schedule(self, 2) elif self.state == "running": self.log.info("{0}: {1} ops completed".format( self.name, self.doc_op_count)) if self.is_alive(): task_manager.schedule(self, 5) else: self.join() self.state = "finished" self.set_result({ "status": "success", "value": self.doc_op_count }) elif self.state != "finished": raise Exception("Bad State in DocumentGeneratorTask") def do_task_op(self, op, key, value=None, expiration=None): retry_count = 0 ok = False if value is not None: value = value.replace(" ", "") while retry_count < 5 and not ok: try: if op == "set": if expiration is None: self.client.set(key, value) else: self.client.set(key, value, expiration) if op == "get": value = self.client.mc_get(key) if op == "delete": self.client.delete(key) ok = True except Exception: retry_count += 1 self.client.reset_vbuckets( self.rest, set([self.client._get_vBucket_id(key)])) return value