一个数组累积数据报。在间隔或一定长度上,它会刷新到数据库。
它在datagram_received网络事件异步上累积。
class Protocol:
flows = []
def datagram_received(self, data, addr):
...
self.flows.append(flow)
用这种方法冲了过来:
def store(self):
flows = []
while len(self.flows):
flows.append(self.flows.pop(0))
self.db.insert(flows)
sleep(10)
self.store()
如何在一次线程安全操作的情况下优化它以进行替换?
这个模块运行一个类的实例,但是在两个线程中。