memory_db.py 843 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on 2020/4/21 11:42 PM
  4. ---------
  5. @summary: 基于内存的队列,代替redis
  6. ---------
  7. @author: Boris
  8. @email: boris_liu@foxmail.com
  9. """
  10. from queue import PriorityQueue
  11. class MemoryDB:
  12. def __init__(self):
  13. self.priority_queue = PriorityQueue()
  14. def add(self, item):
  15. """
  16. 添加任务
  17. :param item: 数据: 支持小于号比较的类 或者 (priority, item)
  18. :return:
  19. """
  20. self.priority_queue.put(item)
  21. def get(self):
  22. """
  23. 获取任务
  24. :return:
  25. """
  26. try:
  27. item = self.priority_queue.get_nowait()
  28. return item
  29. except:
  30. return
  31. def empty(self):
  32. return self.priority_queue.empty()
  33. def clear(self):
  34. self.priority_queue = PriorityQueue()