1 単純な MQ を実装する
シンプルなメッセージ キュー (MQ) の実装は、信頼性、スループット、遅延などの複数の側面を考慮する必要があるため、困難な作業です。ただし、MQ 実装の非常に基本的な例を示すことはできます。
ここでは、Python を使用して単純な MQ を作成します。
- メッセージキュー:
import queue
class SimpleMQ:
def __init__(self):
self.queue = queue.Queue()
def send(self, message):
self.queue.put(message)
def receive(self):
if not self.queue.empty():
return self.queue.get()
return None
- プロデューサー:
import time
def producer(mq):
count = 0
while count < 10:
mq.send(f"Message {
count}")
print(f"Produced: Message {
count}")
count += 1
time.sleep(1)
- 消費者:
import time
def consumer(mq):
while True:
msg = mq.receive()
if msg:
print(f"Consumed: {
msg}")
time.sleep(2)
- メインプログラム:
import threading
if __name__ == "__main__":
mq = SimpleMQ()
producer_thread = threading.Thread(target=producer, args=(mq,))
consumer_thread = threading.Thread(target=consumer, args=(mq,))
producer_thread.start()
consumer_thread.start()
producer_thread.join()
consumer_thread.join()
これは、デモのみを目的とした非常に基本的な MQ 実装です。実際のアプリケーションでは、メッセージの永続化、メッセージの確認、メッセージの再試行、分散展開、マルチコンシューマの同時処理など、さまざまな高度な機能も考慮する必要があります。