class PushThread(Thread): PUSH, PUT = range(2) def __init__(self, session, document): self.session = session self.document = document super(PushThread, self).__init__() self.queue = PriorityQueue() self.setDaemon(True) def put(self, obj, priority): self.queue.put(_WorkItem(priority, obj)) def run(self): while True: # does it even make sense to have a priority que? # (instead of a simple FIFO, I mean we have a single-producer single-consumer # scenario) priority, obj = self.queue.get() if priority == PushThread.PUT: self.session.store_objects(obj) elif priority == PushThread.PUSH: self.session.store_document(self.document) # delete queued objects when training has finished if obj == 'after_training': with self.queue.mutex: del self.queue.queue[:] break self.queue.task_done()
class PushThread(Thread): PUSH, PUT = range(2) def __init__(self, session, document): self.session = session self.document = document super(PushThread, self).__init__() self.queue = PriorityQueue() self.setDaemon(True) def put(self, obj, priority): self.queue.put(_WorkItem(priority, obj)) def run(self): while True: priority, obj = self.queue.get() if priority == PushThread.PUT: self.session.store_objects(obj) elif priority == PushThread.PUSH: self.session.store_document(self.document) # delete queued objects when training has finished if obj == 'after_training': with self.queue.mutex: del self.queue.queue[:] break self.queue.task_done()
class PushThread(Thread): # Define priority constants PUSH = 1 PUT = 2 def __init__(self): super(PushThread, self).__init__() self.queue = PriorityQueue() self.setDaemon(True) def put(self, obj, priority): self.queue.put(_WorkItem(priority, obj)) def run(self): while True: priority, obj = self.queue.get() if priority == PushThread.PUT: cursession().store_objects(obj) elif priority == PushThread.PUSH: push() # delete queued objects when training has finished if obj == "after_training": with self.queue.mutex: del self.queue.queue[:] break self.queue.task_done()