目录
原理
消息队列是一个先进先出栈,每次都处理第一项,处理完了过后会删除这个消息,这是一个简单的消息队列图:

实现代码
首先消息队列需要一个队列,我们用Python里的列表:
python
self.queue = []
接着我们要实现把一个消息加入队列和处理消息:
python
def push(self, text):
self.queue.append(text)
def pull(self):
test = self.queue[0]
self.queue.pop()
return test
示例
然后我们来验证一下:
python
import time
'''
消息队列的类
'''
mq = MessageQueue()
for i in range(1, 21):
mq.push(f"[Error {i}] author is not find")
print(mq.pull(), end="")
time.sleep(0.1)
print(".", end="")
time.sleep(0.1)
print(".", end="")
time.sleep(0.1)
print(".")
结果:
Error 1 author is not find...
Error 2 author is not find...
Error 3 author is not find...
Error 4 author is not find...
Error 5 author is not find...
Error 6 author is not find...
Error 7 author is not find...
Error 8 author is not find...
Error 9 author is not find...
Error 10 author is not find...
Error 11 author is not find...
Error 12 author is not find...
Error 13 author is not find...
Error 14 author is not find...
Error 15 author is not find...
Error 16 author is not find...
Error 17 author is not find...
Error 18 author is not find...
Error 19 author is not find...
Error 20 author is not find...
Process finished with exit code 0
列表:
完整代码
python
import time
class MessageQueue(object):
def __init__(self):
self.queue = []
def push(self, text):
self.queue.append(text)
def pull(self):
test = self.queue[0]
self.queue.pop()
return test
mq = MessageQueue()
for i in range(1, 21):
mq.push(f"[Error {i}] author is not find")
print(mq.pull(), end="")
time.sleep(0.1)
print(".", end="")
time.sleep(0.1)
print(".", end="")
time.sleep(0.1)
print(".")