class TestQueueStore(AsyncTestCase): def setUp(self): self.store = QueueStore() super(TestQueueStore, self).setUp() def test_submit(self): self.store.submit("data")
class SystemLog: def __init__(self, maxsize=1000): self.maxsize = maxsize self.buffer = [] self.q = Queue() self.datastore = QueueStore() Thread(target=self.readqueuetarget).start() def readqueuetarget(self): #https://stackoverflow.com/questions/51038793/error-happen-python3-6-while-using-tornado-in-multi-threading asyncio.set_event_loop(asyncio.new_event_loop()) while True: li = self.q.get() self.buffer.append(li) message = json.dumps(li.toblob()) self.datastore.submit(message) while len(self.buffer) > self.maxsize: self.buffer = self.buffer[1:] def log(self, li): self.q.put(li) def __repr__(self): return f"< systemlog < {len(self.buffer)} | {self.buffer[-50:]} > >"